Показать сообщение отдельно
  #2  
Старый 15.10.2016, 19:55
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

А что, это приципиально чтоб через РВ парсить, может "обычный" разбор строки подойдет?
Код:
var
 s, v:string;
 i: integer;
 sl: TStrings;
 flg1, flg2: boolean;
begin
 flg1:= false;
 sl:= TStringList.Create;
 sl.Clear;
 v:= '';
 s:= Memo1.Text;
 for i := 1 to Length(s)-1 do
  begin
   if (flg1) and (flg2) and (s[i]+s[i+1] = ' |') then
    begin
     if pos('Dialog[1]:', v) > 0  then sl.Add(v);
     v:= '';
     flg1:= false;
     flg2:= false;
    end;
   if (flg1) and (s[i] =  '|') then flg2:= true;
   if (flg1) and (s[i] <> '|') and (s[i] <> #13) then v:= v + s[i];
   if s[i]+s[i+1]+s[i+2]+s[i+3]+s[i+4]+s[i+5] = ' Nick:' then  flg1:= true;
  end;
 memo2.Lines.Assign(sl);
 sl.Free;
end;
Результат:
Цитата:
Nick: Eva_Prieto Dialog[1]: vsirfyjheirf
Nick: Eva_Prieto Dialog[1]: vsirfyjheirf
Nick: Egor_Ucenko Dialog[1]: 77mumamo
Nick: Daiki_Fukuda Dialog[1]: P2KH5K
Nick: Tony_Newman Dialog[1]: gsh123456789
Nick: Eva_Prieto Dialog[1]: vsirfyjheirf
Nick: Eva_Prieto Dialog[1]: vsirfyjheirf
Nick: Tony_Newman Dialog[1]: gsh123456789
Nick: Tony_Newman Dialog[1]: gsh123456789
Nick: Ilja_Kiriloff Dialog[1]: qwerty3131
Ответить с цитированием