Дан файл с текстом, где каждое предложение занимает строку файла. Переставить слова в обратном порядке в каждом предложении, создав новый файл
Категория: Delphi/Pascal
2012-02-13 22:04:15
code: #pascal
program fh; var f,g:text; i,p,n:integer; m:array [1..100] of string; s:string; begin assign(f,'in.txt'); reset(f); assign(g,'out.txt'); rewrite(g); while not eof(f) do begin {считываем ВЕСЬ файл} readln(f,s); {считываем очередную строку} i:=0; {ставим счётчик слов на 0} repeat {*********предложение разбиваем на слова и записываем в массив} inc(i); {увеличиваем счётчик текущего ПРЕДЛОЖЕНИЯ} p:=pos(' ',s); {смотрим где находится пробел} m[i]:=copy(s,1,p-1); {записываем текущее слово в массив} delete(s,1,p); {то слово, которое заприсали в массив - удаляем} until p=0; {****************} n:=i+1; {конец массива} if s[length(s)]='.' then {если строчка заканчивается точкой} begin m[n]:=copy(s,1,length(s)-1); m[1]:=m[1]+'.' {то эту точку перемещаем на 1 слово} end else m[n]:=s; {а если нет точки - то просто его записываем в массив} writeln(g);; for i:=n downto 1 do write(g,m[i],' '); {идём с конца массива в начало и записываем слова в обратном порядке} end; writeln('PEREZAPISANO...'); readln; close(f); close(g); end.
Поделиться: