За один просмотр файла создать новый файл, в который будут записаны все слова наибольшей длинны - Free Pascal
Формулировка задачи:
Спасите мой степарь, пожалуйста! Надо напистаь такую прожку:
Создать текстовый файл. За один просмотр файла создать новый файл, в который будут записаны все слова наибольшей длинны.
Решение задачи: «За один просмотр файла создать новый файл, в который будут записаны все слова наибольшей длинны»
textual
Листинг программы
var fin, fout : text; s : string; maxlen : integer; begin assign(fin, 'd:\test\file_01.txt'); reset(fin); assign(fout, 'd:\test\file_011.txt'); rewrite(fout); maxlen := 0; while not seekeof(fin) do // вот он, один проход... begin readln(fin, s); if length(s) < maxlen then continue; if length(s) > maxlen then rewrite(fout); maxlen := length(s); writeln(fout, s); end; close(fin); close(fout) end.
Объяснение кода листинга программы
- Объявлены переменные:
- fin, fout: text;
- s: string;
- maxlen: integer;
- Установлены начальные значения переменных:
- assign(fin, 'd:\test\file_01.txt');
- assign(fout, 'd:\test\file_011.txt');
- maxlen := 0;
- Запущен цикл while, который выполняется до тех пор, пока не будет достигнут конец файла:
- while not seekeof(fin) do
- Внутри цикла считывается строка из файла в переменную s:
- readln(fin, s);
- Если длина строки s меньше максимальной длины, то цикл продолжает выполняться.
- Если длина строки s больше максимальной длины, то происходит перезапись файла fout:
- rewrite(fout);
- Обновляется значение переменной maxlen:
- maxlen := length(s);
- Строка s записывается в файл fout:
- writeln(fout, s);
- По завершении цикла закрываются файлы fin и fout:
- close(fin);
- close(fout);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д