10.04.2016, 10:43
|
|
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;
проверил - разбирает
|