Для работы с файлами в языке ПАСКАЛЬ имеется несколько стандартных функций и процедур:
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 not eof(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.
Имеется матрица размерностью M x N. Написать программу, выполняющую следующие функции:
1. Ввод c клавиатуры элементов матрицы.
2. Обработку матрицы.
3. Вывод результатов обработки матрицы в файл в формате CSV.
Задача №2.
Имеется матрица размерностью M x N. Написать программу, выполняющую следующие функции:
1. Ввод элементов матрицы из файла в формате CSV.
2. Обработку матрицы.
3. Вывод результатов обработки матрицы на дисплей.