Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ работа с текстовыми файлами

Автор: Багирка 26.12.2008 20:22

написать программу, которая считывает текст из файла Input.txt и выводит в файл Output.txt все предложения в обратном порядке.

Автор: Lapp 26.12.2008 21:47

Цитата(Багирка @ 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 ).

Автор: Багирка 26.12.2008 22:54

Цитата(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