Показать сообщение отдельно
  #1  
Старый 19.12.2012, 19:57
alexanderm alexanderm вне форума
Прохожий
 
Регистрация: 06.12.2012
Сообщения: 1
Репутация: 10
По умолчанию Ошибка в программе

Задача. Дан текстовый файл. Считать из него текст и вывести на экран первые слова из предложений.

Например, из этого текста можно вывести: "Задача", "Дан", "Считать".

Ошибка следующего вида: помимо нужных слов, программа выводит те слова, которые находятся в начале каждой строки компонента Memo. Прошу помочь исправить код знающих людей.

Код:
procedure TForm1.Button1Click(Sender: TObject);
var    f:textfile; ch:char;
       s,st:string;
       i:integer;
       t:boolean;
begin
assignfile(f,'txt.txt');
reset(f);
while not eof(f) do
 begin
  read(f,ch);
  memo1.text:=memo1.text+ch;
  end;
closefile(f);
t:=true;
memo2.Clear;
for i:=0 to memo1.lines.count do
begin
s:=memo1.Lines[i];
s:=trim(s);
st:='';
while s<>'' do
if t=true then
begin
while (s<>'') and (s[1] in ['А'..'Я','а'..'я']) do
begin
st:=st+s[1];
delete(s,1,1);
end;
memo2.lines.add(st);
st:='';
t:=false;
end
else
begin
while (s<>'') and (s[1]<>'.') and (s[1]<>'.') and (s[1]<>'!') and (s[1]<>'?') do
delete(s,1,1);
repeat
delete(s,1,1)
until (s='') or (s[1] in ['А'..'Я','а'..'я']);
t:=true;
end;
end;
end;

end.
Вложения
Тип файла: rar Zadacha.rar (167.9 Кбайт, 0 просмотров)
Ответить с цитированием