Пример 1.Пусть имеется готовый файл целых чисел Dan1.dat. Вычислить сумму его элементов и результат вместе с исходными данными записать в файл Dan2.dat.
Решение.При работе с файлами необходимо помнить о том, всякий файл данных на внешнем носителе (имеющий имя) должен в программе быть связан с файловой переменной. Кроме того, при работе с ним нужно следить за открытием файла (причем, указывать конкретно для какой цели: чтение или запись) и закрытием после сеанса работы. В нашем примере, нужно открыть файл Dan1.dat для чтения, а файл Dan2.dat – для записи. При чтении файла Dan1.dat нужно не только суммировать его элементы, но и «перекачивать» их в файл Dan2. По завершению этой работы полученная сумма добавляется в конец второго файла
Var F1, F2: file of integer;
S, N : integer;
Begin
Assign (F1, ‘Dan1.dat’); {Связь первого файла с перменной F1}
Assign (F2, ‘Dan1.dat’); {Связь второго файла с перменной F2}
Reset (F1); Rewrite (F2); {Открытие файлов для чтения и для записи}
S := 0;
While Not EOF (F1) do
{ Прохождение по файлу F1, Подсчет суммы и запись его элементов в файл F2}
Begin
Read ( F1, N);
Write (F2, N);
S := S + N;
End;
{Запись суммы элементов в конец файла F2}
Write (F2, S);
Close (F1); Close (F2);
Readln
End.
Пример 2.Дан текстовый файл, содержащий только целые числа. Все числа в файле разделены пробелами и разбиты на строки. Следует вывести эти числа на экран построчно и подсчитать число элементов в каждой строке.
Решение.Для решения этой задачи нужно предварительно создать текстовый файл из чисел (это можно сделать в среде TurboPascal c помощью New меню File) и сохранить его, например, под именем Int.dat. При работе с текстовым файлом надо помнить о том, что обработка каждой строки файла завершается признаком конца строки Eoln (F). Поэтому в нашей программе нужно использовать два вложенных оператора While, внешний из которых «идет» до конца файла, а внутренний – до конца строки.
Var F : text;
x, k : integer:
Begin
Assign (F, ‘Int.dat’); Reset (F);
{Проход по всемй файлу}
While not Eof (F) do
Begin
k := 0;
{Проход по строке}
While not Eoln (F) do
Begin
{Считывание очередного элемента, вывод его на экран и увеличение счетчика числа элементов в строке}
Read (F, x);
Write (x, ‘ ‘);
k := k + 1;
end;
Writeln ( ‘ В строке’, k, ' элементов’);
Readln (F); {Переход к следующей строке файла}
End;
Close (F);
Reradln;
End.
Задание. Составить программу, реализующую конкретную схему действий. В содержимое программы должна входить процедура формирования исходного файла нужного типа и формата.