
20_Примеры работы с текстовыми файлами.ppt
- Количество слайдов: 19
Примеры работы с текстовыми файлами
Копирование файла var ch: Char; begin Reset(f 1); Rewrite(f 2); while not eof(f 1) do begin read(f 1, ch); write(f 2, ch); end; Close. File(f 1); Close. File(f 2);
Слияние текстовых файлов var s: String; begin Reset(f 1); Append(f 2); while not eof(f 1) do begin readln(f 1, s); writeln(f 2, s); end; Close. File(f 1); Close. File(f 2);
Вывод файла в компонент TMemo var s: String; begin Reset(f 1); memo. clear; while not eof(f 1) do begin readln(f 1, s); memo. lines. append(s); end; Close. File(f 1);
Ввод-вывод при решении простейшей задачи
var a, b, c, y: real ; f 1, f 2: Text. File; begin Assign. File(f 1, ’data. txt’); Assign. File(f 2, ’result. txt’); Reset(f 1); Rewrite(f 2); readln(f 1, a, b, c); y: =(a+b)/c; writeln(f 2, 'a=', a: 1: 2, ' b=', b: 1: 2, ' c=', c: 1: 2); writeln(f 2, ' y=', y: 1: 2); close. File(f 1); close. File(f 2); end;
Результаты выполнения Содержимое файла с исходными данными: 2 3 0. 5 Файл результатов: a=2. 00 b=3. 00 c=0. 50 y=10. 00
Ввод-вывод при работе с массивами • При вводе числовых массивов можно использовать процедуру read(). Элементы могут располагаться в файле произвольно. Считывание производится, пока не будет достигнут конец файла. • При создании файла исходных данных не следует последнего числа вводить символ перевода строки, иначе будет считан лишний ноль.
Ввод массива Reset(f 1); count: =0; while not eof(f 1) do begin count: =count+1; read(f 1, a[count]); end;
Вывод массива Rewrite(f 2); for i: =1 to count do writeln(f 2, a[i]);
Ввод-вывод при работе с матрицей • Данные в файле должны быть расположены в виде таблицы. Произвол здесь уже не допустим. • Для считывания строк можно использовать read() и Eoln(). • При выводе матрицы следует позаботиться о переводе строки после каждой строки и использовать спецификаторы длины.
Чтение матрицы из файла Reset(f 1); count. Row: =0; while not eof(f 1) do begin count. Row: =count. Row+1; count. Col: =0; while not eoln(f 1) do begin count. Col: = count. Col+1; read(f 1, m[count. Row, j]); end; readln(f 1); //переход к новой строке end;
Запись матрицы в файл Rewrite(f 2); for i: =1 to count. Row do begin for j: =1 to count. Col do write(f 2, m[i, j]: 6); if i<> count. Row then writeln(f 2); //переход к новой строке end;
Ввод-вывод при работе с записями • Особенность в том, что записи могут иметь поля разного типа. • Не следует в одной строке располагать данные разных записей. • Поля типа строка символов лучше располагать отдельными строками. • Вывод записей следует организовать так, чтобы было удобно анализировать информацию.
Пример (фамилии и оценки студентов) Type TRec=record fio: string[10]; marks: array[1. . 5] of integer; end; TArr. Stud=array[1. . 30] of TRec;
Пример (фамилии и оценки студентов) Борщ К. Е. 3 4 5 1 2 Бублик К. П. 1 2 3 4 5 Вареник Г. Т. 3 4 5 5 5 Нетудикидайченко Н. К. 1 2 1
Чтение массива записей Reset(f 1); count: =0; while not eof(f 1) do begin count: =count+1; readln(f 1, a[count]. fio); for j: = 1 to 5 do read(f 1, a[count]. marks[j]); readln(f 1); end;
Вывод массива записей в текстовый файл Rewrite(f 2); for i: =1 to count do begin write(f 2, a[i]. fio: 10); for j: =1 to 5 do write(f 2, a[i]. marks[j]: 2); writeln(f 2); end;
Результат вывода Борщ К. Е. 3 4 5 1 2 Туз К. П. 1 2 3 4 5 Вареник Г. 3 4 5 5 5 Нетудикида 1 2 1
20_Примеры работы с текстовыми файлами.ppt