уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.

В лабораторной работе требуется составить программы, которые будут выполнять различные действия с внешними файлами — записывать в файл информацию, считывать данные из файла, проводить поиск в файлах и так далее. Решение приводится в Delphi 10.3 Rio. Задание №1. Ввести текст с клавиатуры, сохраняя каждую введенную строку в файле text.txt. Работа продолжается, пока не будет введена пустая строка. 

Анализ задачи: в тексте задачи не конкретизируется максимальный размер строки, которую необходимо ввести с клавиатуры, поэтому использовать для решения задачи типизированный файл будет неверно (для этих файлов запись должна иметь фиксированный размер). Для решения задачи будет использовать возможности работы Pascal/Delphi с текстовыми файлами.

Решение задачи

  1. Создаем новое консольное приложение в Delphi

Открываем Delphi и в меню File выбираем «File — New — Other«:

В открывшемся окне выбираем в списке слева пункт «Delphi», а справа — «Console Application»:

Delphi создаст новый консольный проект:

2. Пишем код программы для работы с текстовым файлов в соответствии с заданием

program TextFiles;
 
{$APPTYPE CONSOLE}
 
{$R *.res}
 
uses
  System.SysUtils;
 
var F: TextFile;
    s: string;
begin
  AssignFile(F, 'text.txt');
  Rewrite(F);
  repeat
    writeln('Введите новую строку:');
    Readln(s);
    if Length(S)>0 then
      Writeln(F, s);
  until Length(s)=0;
  CloseFile(F);
end.

Рассмотрим алгоритм решения этой задачи:

1. Определяем переменные в разделе var

F: TextFile;

— это файловая переменная для работы с текстовым файлом

s: string;

— это переменная для хранения строки, введенной пользователем с клавиатуры

2. Ассоциируем файловую переменную с внешним файлом на диске:

AssignFile(F, 'text.txt');

Более подробно об этой процедуре — см. здесь.

3. После того, как файловая переменная ассоциирована с внешним файлом, открываем текстовый файл, используя метод Rewrite.

Rewrite(F);

Для открытия текстового файла в Pascal/Delphi могут использоваться три метода — Rewrite, Reset и Append. Однако, так как в тексте задачи не ставится вопрос о том, должен ли файл создаваться заново или файл должен сохраняться и так далее, то я использовал кратчайший путь решения задачи, используя метод Rewrite, который создает новый файл (если файл отсутствует на диске) и открывает его.

4. Создаем цикл с постусловием repeat…until в котором запрашиваем у пользователя ввод очередной строки

  repeat
    writeln('Введите новую строку:');
    Readln(s);
    if Length(S)>0 then
      Writeln(F, s);
  until Length(s)=0;

Условие выхода из цикла — длина строки (Length(s)) равна нулю. Внутри цикла проверяется длина строки и, если длина строки больше нуля, то строка s записывается в файл — это делается для того, чтобы пустая строка не записалась в файл перед выходом из программы.

Цикл repeat..until можно заменить на цикл с предусловием while..do, например, так:

  writeln('Введите новую строку:');
  Readln(s);
  while Length(s)>0 do
    begin
      Writeln(F, s);
      writeln('Введите новую строку:');
      Readln(s);
    end;

Улучшение программы

Для улучшения программы и, возможно, поощрения со стороны преподавателя, можно предложить следующее улучшение нашей программы — вынести строки приглашение ввода от пользователя и имя файла в раздел констант, что позволит упростить внесение изменений в программу, с одной стороны, а, с другой стороны — ваш Delphi-код станет более чистым :) Улучшенная версия нашей программы может выглядеть, например, вот так:

program TextFiles;
 
{$APPTYPE CONSOLE}
 
{$R *.res}
 
uses
  System.SysUtils;
 
const
  cFileName = 'text.txt'; //имя файла для записи
  сInputStr = 'Введите новую строку:';//строка-приглашение для пользователя
 
var F: TextFile;
    s: string;
begin
  AssignFile(F, cFileName);
  Rewrite(F);
  writeln(сInputStr);
  Readln(s);
  while Length(s)>0 do
    begin
      Writeln(F, s);
      writeln(сInputStr);
      Readln(s);
    end;
  CloseFile(F);
end.

Файлы для загрузки

Скачать файлы лабораторной работы вы можете со страницы исходников:

0 0 голоса
Рейтинг статьи
уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.
Подписаться
Уведомить о
0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии