2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Memo - обробка текста
Сообщение25.04.2009, 16:39 


02/03/09
50
Текст состоит из предложений, которые заканчиваются точкой.в одном рядке может находится пару предложений или одно может занимать несколько рядков! все слова разделены пробелами!

Есть текст(MEMO1) в котором есть предложения, которые заканчиваются "!".Нужно вывести в MEMO2 все прежложения с таким окончанием.
вот то что я начудил


Код:
for i:=0 to Memo1.Lines.Count-1 do begin
if Pos('.',Memo1.Lines.Strings[i])>0 then begin
Memo1.selstart:=0;
Memo1.sellength:=length(Memo1.text);
memo1.setFocus;
memo2.Text:=copy(Memo1.Lines.Strings[i],pos('.',Memo1.Lines.Strings[i])+1,
pos('!',Memo1.Lines.Strings[i])-pos('.',Memo1.Lines.Strings[i]));
exit;


в моем коде оно копирует только после первой точки и до первого "!" и то только в одной строке. как зделать что бы находила все соответствия условию. очень прошу помочь - срочно!!! :-(

 Профиль  
                  
 
 
Сообщение25.04.2009, 19:25 


04/03/09
91
Код:
begin
  i:=1;
  k:=0;
  For i:=1 to Length(Memo1.Text) do begin
    if memo1.Text[i]='!' then begin
      Memo2.Text:=Memo2.Text+Copy(Memo1.Text,(i-k)+1,k);
      k:=0;
    end;
    if Memo1.Text[i]='.' then k:=0;
    if Memo1.Text[i]<>'!' then k:=k+1;

  end;

end;

;)

Добавлено спустя 1 минуту 31 секунду:

ваш код не смотрел, что-то слишком наворочено.

Добавлено спустя 16 минут 57 секунд:

даже так, если первое предложение с восклицательным знаком вдруг будет.
Код:
begin
  k:=1;
  a:=0;
  For i:=1 to Length(Memo1.Text) do begin
    if memo1.Text[i]='!' then begin
      Memo2.Text:=Memo2.Text+Copy(Memo1.Text,(i-k)+a,k);
      k:=0;
    end;
    if Memo1.Text[i]='.' then begin
      k:=0;
      a:=1;
    end;
    if Memo1.Text[i]<>'!' then k:=k+1;
  end;
end;

 Профиль  
                  
 
 
Сообщение25.04.2009, 20:36 


02/03/09
50
спасибо

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group