IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   Адреса переменных (http://www.imho.ws/showthread.php?t=55926)

vladoss 07.04.2004 19:12

Адреса переменных
 
Есть прога на паскале (исп-ся WinCRT, запускается под XP), в процессе диалога с юзером она запрашивает пару-тройку параметров, к-рые вводятся в опр. переменные. На основе введенного выдается результат расчета (также какая-то переменная). Прога завершает работу. Задача состоит в том, чтобы в цикле запускать на выполнение эту прогу с различными входными параметрами и соотв-но записывать в какой-то фалик результаты расчета. Насколько я понимаю, надо узнать адреса интересуемых переменных для возможности чтения и записи?

vladoss 08.04.2004 01:29

конкретизируем ситуацию:

Допустим имеется простейшая прога, к-рая запрашивает у юзера число "а", записывая его в переменную a:integer. После ввода она высчитывает
квадрат данного числа, т.е. b=a*a и пишет на экран значение b.

Возможно ли написание другой проги, к-рая бы автоматически запускала 1ю, скажем 100 раз на предмет, если бы юзер захотел т.о. узнать квадраты целых чисел от 1 до 100?

LN berf 08.04.2004 02:25

Так ты запрашиваешь юзера после вывода еще раз ввести переменную
while a<>100 do
begin
readln(a);
{============}
{Body of Program}
{...}
end;

Соррите если че то не понял

vladoss 08.04.2004 16:43

нет, там не все так просто, ситуация выше просто утрирована. Задача состоит именно в том, чтобы не делать изменения в исходниках 1й.
Я думаю, а может просто сделать батничек, который будет запускать сто раз прогу в таком стиле:

Код:

myprog <infile >outfile
Тогда прога будет читать не с клавиатуры, а с готового файла инфайл, а писать будет в аутфайл, который можно проанализировать?

Добавлено через 38 минут:
но как сделать конкретно?

/7y3uK 08.04.2004 18:18

ИМХО батник - это единственный выход. СОМ технология не катит... DLL не попользуешь...

vladoss 13.04.2004 01:36

блииин, не врублюсь, в чем дело, в исходниках этой проги на паскудном для вывода инфы юзается writeln, который пишет не на станд. вывод, а просто на экран (заметьте, это не одно и то же). Поэтому метод как я написал выше не прокатывает. Как исправить? я что-то ниче не нашел в хелпе по этому поводу..

Добавлено через 1 час и 37 минут:
есть простейший код:
Код:

Uses Crt;
var f:text;
begin
assign(f, 'Con');
rewrite(f);
writeln(f, 'Hello world!');
close(f);
end;

Компилируем Borland Pascal 7.0.
но вот чудо, почему не срабатывает редиректинг в файл:
%prog.exe > outfile
????????????????????
Причем это происходит как под винХР команд-лайном cmd, так и под эмулирующем Dos 5.x Volkov Comander (т.е. под чистым досом, последнего у меня не было, чтобы убедиться, что это именно так)

Ersh 14.04.2004 20:58

приведи пример того кода, где у тебя стандартный оутпут меняют на другой

albo 14.04.2004 21:19

vladoss
Отруби Crt.

vladoss 16.04.2004 02:14

не помогает

snowman2002 16.04.2004 16:06

vladoss
Замени текст
assign(f, 'Con');
rewrite(f);
writeln(f, 'Hello world!');
close(f);

на
writeln('Hello world!');
и все.

Будет использоваться стандартный вывод на экран, который можно перенаправить в файл.

vladoss 16.04.2004 16:09

snowman2002
если бы так было, то думаешь я бы стал разводить тут демагогию?


Часовой пояс GMT +4, время: 05:24.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.