Изменить порядок следования строк в файле на обратный - Pascal
Формулировка задачи:
Помогите, пожалуйста, решить данную задачу в паскале: Дан текстовый файл, состоящий из нескольких строк. Изменить порядок следования строк в файле на обратный порядок следования.
Решение задачи: «Изменить порядок следования строк в файле на обратный»
textual
Листинг программы
- var
- fi, fo: Text;
- s: String;
- n, i: Integer;
- begin
- Assign(fi,'input.txt'); Reset(fi);
- Assign(fo,'output.txt'); Rewrite(fo);
- while not EoF(fi) do begin
- ReadLn(fi); Inc(n);
- end;
- for n:=n downto 1 do begin
- Reset(fi); for i:=n downto 2 do ReadLn(fi);
- ReadLn(fi,s); WriteLn(fo,s);
- end;
- Close(fi); Close(fo);
- end.
Объяснение кода листинга программы
- Объявление переменных:
fi
иfo
- файловые переменные типаText
.s
- строковая переменная типаString
.n
иi
- целочисленные переменные типаInteger
.
- Открытие файлов:
Assign(fi,'input.txt');
- присваивание файлу с именемinput.txt
переменнойfi
.Reset(fi);
- открытие файла для чтения.Assign(fo,'output.txt');
- присваивание файлу с именемoutput.txt
переменнойfo
.Rewrite(fo);
- открытие файла для записи (если файл существует, его содержимое будет удалено).
- Подсчет количества строк в файле:
while not EoF(fi) do begin
- цикл, выполняемый до достижения конца файла.ReadLn(fi); Inc(n);
- чтение строки из файла и увеличение значения переменнойn
на 1.
- Изменение порядка строк в файле на обратный:
for n:=n downto 1 do begin
- цикл, выполняемый в обратном порядке от количества строк до 1.Reset(fi);
- открытие файла для повторного чтения.for i:=n downto 2 do ReadLn(fi);
- цикл, читающий строки в файле до нужной строки (используется для перемещения указателя в нужное место).ReadLn(fi,s);
- чтение строки из файла в переменнуюs
.WriteLn(fo,s);
- запись строкиs
в файлfo
.
- Закрытие файлов:
Close(fi);
- закрытие файлаfi
после чтения.Close(fo);
- закрытие файлаfo
после записи.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д