Операторы работы с файлами.
Для работы с файлами в языке ПАСКАЛЬ имеется несколько стандартных функций и процедур:
Append(f) - открывает файл F для дописывания данных в его конец;
Assign(f,s) - связать файл S с переменной F;
Close(f) - закрывает файл F;
Eof(f) - возвращает True , если обнаружен конец файла F, иначе – False;
Eoln(f) - возвращает True , если обнаружен конец строки в файле F, иначе – False;
Erase(f) - удаляет файл F с диска;
Execute(n) - вызывает запуск программы с именем N;
FilePos(f) - возвращает текущий номер записи в файле F;
FileSize(f) - возвращает количество записей в файле F;
Read(f,d) - производит чтение данных D из файла F;
Rename(f,s) - переименовывает файл F в имя S;
Reset(f) - открывает существующий файл F для чтения;
ReWrite(f) - создает новый файл F для записи (старый уничтожается);
Seek(f,n) - перемещает счетчик записей в файле F на позицию N;
Write(f,d) - записывает данные D в файл F (старые данные уничтожаются).
Порядок работы с файлами
При работе с файлами необходимо придерживаться определенного порядка: сначала нужно связать переменную с именем файла операторомAssign, затем создать ReWrite или открыть Reset существующий файл, а после работы с файлом (записи/чтения) его нужно закрыть выполнив оператор Close.
Пример чтения из файла
program ReadFile;
{ Программа читает символы из файла и выводит их на дисплей }
Var
name : string; { Имя файла }
fl : text; { Файловая переменная text = file of string (текстовый файл)}
chr : char; { Переменная для получения символа из файла }
Begin
Writeln; { Пропустить строку }
Writeln(Программа читает символы из файла и выводит их на дисплей ' );
Writeln; { Пропустить строку }
Write( 'Имя файла? ' );
readln( name ); { Читает строку с клавиатуры в переменную nm }
assign( fl, name ); { Назначает имя файла файловой переменной }
reset( fl ); { Открывает файл на чтение }
while noteof( fl ) do { Цикл до конца файла }
Begin
read( fl, chr ); { Чтение символа из файла }
Write( chr ); { Вывод символа на дисплей }
end;
close( fl ); { Закрыть файл }
Writeln; { Пропустить строку }
Writeln( 'Готово.' );
end.
Пример записи в файл
program WriteFile;
{ Программа записывает в указанный файл целые числа от 0 до 20. }
Var
name : string; { Имя файла }
fl : text; { Файловая переменная text = file of string (текстовый файл)}
cnt : integer; { Счетчик цикла }
Begin
Writeln; { Пропустить строку }
Writeln('Программа записывает в указанный файл целые числа от 0 до 20.' );
Writeln; { Пропустить строку }
Write( 'Имя файла? ' );
readln( name ); { Читает строку с клавиатуры в переменную nm }
assign( fl, name ); { Назначает имя файла файловой переменной }
reWrite( fl ); { Открывает файл на запись }
for cnt := 0 to 20 do { Цикл от 0 до 20 }
Write( fl, cnt : 4 ); { Запись переменной i в файл fl }
close( fl ); { Закрыть файл }
Writeln; { Пропустить строку }
Writeln( 'Готово.' );
end.
Формат фала CSV
Формат файла CSV предназначен для обмена табличными данными между программами. Структура файла фактически описана в самом названии формата – Comma Separated Value (величины разделенные запятой). Файл CSV – это текстовый файл, содержащий набор строк. Каждая строка содержит числа , разделенные запятыми (пробелы не допустимы!). Большинство табличных процессоров позволяет импортировать и преобразовывать такие файлы в электронные таблицы, в то же время, формат очень прост и к любому измерительному устройству легко написать программу представляющую результаты эксперимента в этом формате.
Задача №1.
Имеется матрица размерностью MxN. Написать программу, выполняющую следующие функции:
1. Ввод c клавиатуры элементов матрицы.
2. Обработку матрицы.
3. Вывод результатов обработки матрицы в файл в формате CSV.
Задача №2.
Имеется матрица размерностью MxN. Написать программу, выполняющую следующие функции:
1. Ввод элементов матрицы из файла в формате CSV.
2. Обработку матрицы.
3. Вывод результатов обработки матрицы на дисплей.