Переход на стандартный поток

Форум для изучающих FPC и их учителей.

Модератор: Модераторы

Переход на стандартный поток

Сообщение fullmoon86 » 25.05.2015 10:41:52

Приветствую!
Столкнулся с такой проблемой: в ходе выполнения алгоритма мне нужно считать данные из файла, затем вывести данные на экран, считать с клавиатуры, и записать в файл, выглядит это примерно так:
...
assign(input,'input.txt'); reset(input);
assign(output,'output.txt');
read(var1);
close(input);
write('Vvedite nomer ');
read(var2);
var3:=var1+var2;
rewrite(output);
write(var3)
close(output);
write('Spasibo!');
...
Компилируется без ошибок, а при выполнении возвращает Exitcode 103: File not open.
Получается, что он стучится в файлы, которые я закрыл, после считывания, и я, думаю, что причина в том, что он не возвращается на стандартные потоки ввода-вывода.
Собс-но вопрос, как указать, что нужно использовать стандартные потоки?
Заранее спасибо)
Поиск по форуму не помог, прошу прощения, если проглядел решение.
fullmoon86
незнакомец
 
Сообщения: 1
Зарегистрирован: 25.05.2015 10:31:31

Re: Переход на стандартный поток

Сообщение Mikhail » 25.05.2015 10:55:31

fullmoon86 писал(а):Приветствую!
Столкнулся с такой проблемой: в ходе выполнения алгоритма мне нужно считать данные из файла, затем вывести данные на экран, считать с клавиатуры, и записать в файл, выглядит это примерно так:
...
assign(input,'input.txt'); reset(input);
assign(output,'output.txt');
read(var1);
close(input);
write('Vvedite nomer ');
read(var2);
var3:=var1+var2;
rewrite(output);
write(var3)
close(output);
write('Spasibo!');
...
Компилируется без ошибок, а при выполнении возвращает Exitcode 103: File not open.
Получается, что он стучится в файлы, которые я закрыл, после считывания, и я, думаю, что причина в том, что он не возвращается на стандартные потоки ввода-вывода.
Собс-но вопрос, как указать, что нужно использовать стандартные потоки?
Заранее спасибо)
Поиск по форуму не помог, прошу прощения, если проглядел решение.

Надо "переоткрыть" стандартные потоки, указав в качестве имени файла пустую строку. Например так
Код: Выделить всё
AssignFile(input, '');
Reset(input);

Закрывать стандартный поток не нужно.
Mikhail
энтузиаст
 
Сообщения: 562
Зарегистрирован: 24.10.2013 16:06:47

Re: Переход на стандартный поток

Сообщение wavebvg » 26.05.2015 01:32:00

Код: Выделить всё
CloseFile(output)
wavebvg
постоялец
 
Сообщения: 354
Зарегистрирован: 28.02.2008 04:57:35


Вернуться в Обучение Free Pascal

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16

Рейтинг@Mail.ru