Переписать текстовый файл в 5 новых. - Free Pascal
Формулировка задачи:
Помогите, пожалуйста, написать программу.
Пусть дан текстовый файл. Максимальная длина слова в этом файле равна пяти символам. Создайте пять файлов. Каждой строке входного файла соответствует одна строка в каждом из пяти файлов, в которые переписаны через пробел слова соответствующей длины : в первом файле - слова длины 1, во втором - слова длины 2 и т.д. Если слов длины K нет, то соответствующая строка K-го должна быть пустой.
Даже не понимаю с чего тут начать((
Решение задачи: «Переписать текстовый файл в 5 новых.»
textual
Листинг программы
const n=5; var f: array [0..n] of Text; s, w: String; i: Integer; begin Assign(f[0],'0.txt'); Reset(f[0]); for i:=1 to n do begin Assign(f[i],Chr(Ord('0')+i)+'.txt'); Rewrite(f[i]); end; while not eof(f) do begin Readln(f,s); while Pos(' ',s)>0 do Delete(s,Pos(' ',s),1); if s[1]=' ' then Delete(s,1,1); if s[length(s)]<>' 'then s:=s+' '; while Pos(' ',s)>0 do begin w:=Copy(s,1,Pos(' ',s)-1); if Length(w) in [1..n] then Write(f[Length(w)],' ',w); Delete(s,1,Pos(' ',s)); end; for i:=1 to n do WriteLn(f[i]); end; for i:=0 to n do Close(f[i]); WriteLn('Файл прочитан и переписан в ',n,' файлов'); end.
Объяснение кода листинга программы
- Объявлены следующие переменные:
- f: массив из 5 текстовых файлов
- s, w: строки
- i: целое число
- Первый файл (0.txt) открывается на чтение, остальные файлы (от 1 до 5) открываются на запись.
- В цикле до тех пор, пока не достигнут конец файла, происходит чтение строк из первого файла.
- В каждой строке удаляются пробелы в начале и в конце.
- Если в строке есть пробелы, они удаляются, кроме последнего.
- Каждая строка записывается в соответствующий файл.
- После завершения чтения всех строк, файлы закрываются.
- Выводится сообщение о том, что файл прочитан и переписан в 5 новых файлов.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д