Загрузка данных


На предоставленных изображениях содержится практическое занятие №39 на тему «Разработка программ работы с текстовыми файлами на Pascal ABC».
Ниже приводится подробный разбор теоретического материала, ответов на контрольные вопросы и решений практических заданий.
Изучение нового материала (Краткая выжимка)
 * Текстовый файл в Паскале — это совокупность строк произвольной длины, разделенных метками конца строки, а весь файл заканчивается меткой конца файла.
 * Основные шаги при работе с файлом:
   * Связывание файловой переменной с файлом на диске с помощью процедуры assign(variable, 'path');
   * Открытие файла для чтения (reset), записи (rewrite) или добавления (append).
   * Чтение или запись данных (read, readln, write, writeln).
   * Закрытие файла с помощью процедуры close(variable);
Контрольные вопросы и ответы на них
 * Что такое текстовый файл?
   * Ответ: Это совокупность строк произвольной длины, разделенных метками конца строки, с общей меткой конца файла в конце.
 * Какие существуют виды текстовых файлов?
   * Ответ: Текстовые (тип text) файлы со строками неопределенной длины, файлы с типом записей (двоичные/типизированные file of) и файлы без типа для передачи данных блоками записей (нетипизированные file).
 * Как описать файловые переменные?
   * Ответ: С помощью ключевого слова var и указания типа, например: f: text;.
 * Как открыть файл?
   * Ответ: С помощью процедур reset(f) (для чтения существующего), rewrite(f) (для создания нового/перезаписи) или append(f) (для добавления в конец).
 * Как прочитать файл?
   * Ответ: Построчно или посимвольно с помощью процедур read(f, ...) или readln(f, ...), проверяя конец файла через функцию eof(f).
 * Как записать в файл?
   * Ответ: С помощью процедур write(f, ...) или writeln(f, ...).
Практические задания (Решения на Pascal ABC)
Задание 1
Условие: В файле text.txt записаны строки. Вывести первую и третью из них на экран.
var
  filetext: text;
  a, b, c: string;
begin
  assign(filetext, 'c:\text.txt');
  reset(filetext);
  readln(filetext, a); // читаем 1-ю строку
  readln(filetext, b); // читаем 2-ю строку
  readln(filetext, c); // читаем 3-ю строку
  close(filetext);
  writeln(a);
  writeln(c);
end.

Задание 2
Условие: Считать из файла input.txt числа (записаны в столбик). Затем записать их произведение в файл output.txt.
var 
  p, x: integer;
  f: text;
begin
  assign(f, 'input.txt');
  reset(f);
  p := 1;
  while not eof(f) do 
  begin
    readln(f, x);
    p := p * x;
  end;
  close(f);
  
  assign(f, 'output.txt');
  rewrite(f);
  writeln(f, 'Произведение чисел ', p);
  close(f);
end.

Задание 3 (Добавление строки S в начало файла)
Условие: Дана строка S и текстовый файл. Добавить строку S в начало файла.
(Полное решение с использованием вспомогательного файла):
var
  F_in, F_out: Text;
  Name, S: String;
begin
  Write('Введите строку S: ');
  Readln(S);
  Write('Введите имя файла: ');
  Readln(Name);
  
  Assign(F_in, Name);
  Assign(F_out, 'c:\text1.txt');
  
  Reset(F_in);
  Rewrite(F_out);
  
  Writeln(F_out, S); // Записываем новую строку первой
  
  while not eof(F_in) do
  begin
    Readln(F_in, Name); // Используем переменную как буфер для чтения строк старого файла
    Writeln(F_out, Name);
  end;
  
  Close(F_in);
  Close(F_out);
  
  Erase(F_in);                  // Удаляем старый файл
  Rename(F_out, Name);          // Переименовываем временный файл в исходный
end.

Задание 4
Условие: Создать текстовый файл, в который записать 3 предложения. Прочитать этот файл, вывести его содержимое на экран и определить длину каждого предложения.
Program File_text;
var 
  fl: text;
  st: string;
  n: byte;
begin
  assign(fl, 'file1.txt'); 
  rewrite(fl); 
  writeln(fl, 'Очень полезно изучать'); 
  writeln(fl, 'язык Pascal'); 
  close(fl); 
  
  reset(fl); 
  while not eof(fl) do 
  begin
    readln(fl, st); 
    writeln(st); 
    n := length(st); 
    writeln('длина =', n);
  end;
  close(fl); 
end.