Чтение данных из файла и запись данных в файл на Pascal
Для того, чтобы организовать ввод данных из файла необходимо:
1 | Завести преременную типа текст. |
Var ... f1: text; ... |
2 | Связать эту текстовую переменную с файлом из которого будет производиться чтение, например с input.txt. |
Begin ... Assign(f1,'input.txt'); ... |
3 |
Открыть файл для чтения. Файл должен существовать и находится в той же папке, где сохранён файл с программой. Иначе будет сгенерирована ошибка: » Ошибка ввода/вывода 2: Не удается найти указанный файл для PascalABC exited with exitcode=2 для Free Pascal |
Reset(f1); |
4 |
Теперь можно считывать данные из файла input.txt. Для этого в команды Read и ReadLN необходимо добавить имя файловой переменной. Если в файле данные записаны в одной строке, через пробел, то используется процедура Read столько раз, сколько чисел нужно прочитать. Если же строк несколько, то когда доходим до символа стоящего в конце строки, используется ReadLn. В результате чего будет считано последнее число строки и курсор переместится на новую строку. |
// ВМЕСТО // Read(a); // ReadLN(b); // ПИШЕМ: Read(f1,a); ReadLN(f1,b);
|
5 |
После окончания работы с файлам, он должен быть закрыт! Процедура Close освобождает переменную и её можно использовать в других целях, например для вывода данных. |
Close(f1); ... end. |
Для того, чтобы организовать вывод данных в файла необходимо:
1 | Завести преременную типа текст. |
Var ... f2: text; ... |
2 | Связать эту текстовую переменную с файлом в который будет производиться запись, например с output.txt. |
Begin ... Assign(f2,'output.txt'); ... |
3 | Открыть файл для записи. | Rewrite(f2); |
4 |
Теперь можно записывать данные в файл output.txt. Для этого в команды Write и WriteLN необходимо добавить имя файловой переменной. Процедура Write записывает данные в одну строку. Процедура WriteLn после записи данных, осуществляет переход на новую строку. |
// ВМЕСТО // Write(a); // WriteLN(b); // ПИШЕМ: Write(f2,a); WriteLN(f2,b); |
5 |
После окончания работы с файлам, он должен быть закрыт! |
Close(f2); ... end. |