Помощь - Поиск - Пользователи - Календарь
Полная версия: работа с текстовыми файлами
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Багирка
написать программу, которая считывает текст из файла Input.txt и выводит в файл Output.txt все предложения в обратном порядке.
Lapp
Цитата(Багирка @ 26.12.2008 16:22) *
написать программу, которая считывает текст из файла Input.txt и выводит в файл Output.txt все предложения в обратном порядке.

Вот, смотри.
Это решение твоей задачи. Оно использует точку в качестве разделителя предложений. Годится для предложений любой длины и не использует дополнительной памяти для хранения данных (ну, кроме одного байта smile.gif).

Но.. в нем не хватает одной строки! smile.gif Пропущенная строка отмечена комментарием:

var
f,g: file of char;
s,p,t: LongInt;
b: boolean;
c: char;

begin
Assign(f,'Input.txt');
ReSet(f);
Assign(g,'Output.txt');
ReWrite(g);
s:=FileSize(f);
p:=0;
while not EoF(f) do begin
for b:=false to true do begin
Seek(f,p);
if b then Seek(g,s-t) else t:=p;
while not EoF(f) do begin
Read(f,c);
{ здесь должна быть строка вида: if ... then ... else ... ; }
if c='.' then break
end
end;
p:=t+1
end;
Close(f);
Close(g)
end.
Догадаешься, что там надо вставить вместо многоточий - все будет тип-топ. Нет - ну, "не судьба" ((С) известный анекдот smile.gif ).
Багирка
Цитата(Lapp @ 26.12.2008 17:47) *

Вот, смотри.
Это решение твоей задачи. Оно использует точку в качестве разделителя предложений. Годится для предложений любой длины и не использует дополнительной памяти для хранения данных (ну, кроме одного байта smile.gif).

Но.. в нем не хватает одной строки! smile.gif Пропущенная строка отмечена комментарием:

var
f,g: file of char;
s,p,t: LongInt;
b: boolean;
c: char;

begin
Assign(f,'Input.txt');
ReSet(f);
Assign(g,'Output.txt');
ReWrite(g);
s:=FileSize(f);
p:=0;
while not EoF(f) do begin
for b:=false to true do begin
Seek(f,p);
if b then Seek(g,s-t) else t:=p;
while not EoF(f) do begin
Read(f,c);
{ здесь должна быть строка вида: if ... then ... else ... ; }
if c='.' then break
end
end;
p:=t+1
end;
Close(f);
Close(g)
end.
Догадаешься, что там надо вставить вместо многоточий - все будет тип-топ. Нет - ну, "не судьба" ((С) известный анекдот smile.gif ).


Догадаюсь!!! спасибо!!!!!! laugh.gif мона вас в щечку !kiss4.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.