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

Нужно по-правилам пользовать регэкспы, но мона и так разобрать, G-кодом
Код:
procedure TForm1.Button1Click(Sender: TObject);
 procedure prs(ds, s1, s2: string; list: TStrings);
 var
  pScan, pEnd, ps1, ps2: PChar;
  foundText : string;
 begin
  ds := Uppercase(ds); s1:= Uppercase(s1); s2:= Uppercase(s2);
  ps1:= PChar(s1); ps2:= PChar(s2); pScan:= PChar(ds);
  repeat pScan := StrPos(pScan, ps1);
   if pScan <> nil then
    begin
     inc(pScan, Length(s1)); pEnd:= StrPos(pScan, ps2);
     if pEnd <> nil then
      begin
       SetString(foundText, Pchar(ds)+(pScan-PChar(ds)), pEnd-pScan);
       list.Add(foundText); pScan:= pEnd+Length(s2);
      end else pScan:= nil;
    end;
   until pScan = nil;
 end;

var
 artist, title, url: TStrings;
 i: integer;
 s: string;
begin
 artist:= TStringList.Create;
 title:= TStringList.Create;
 url:= TStringList.Create;

 s:= Memo1.Text;

 prs(s, '"artist":"', '","', artist);
 prs(s, '"title":"', '","', title);
 prs(s, '"url":"', '","', url);
 ListBox1.TabWidth := 200;
 for i := 0 to artist.Count-1 do
  ListBox1.Items.Add('Artist: '+artist[i]+^I+'Title: '+title[i]+^I+'URL: '+url[i]);
 artist.Free;
 title.Free;
 url.Free;
end;
проверил - разбирает