Показать сообщение отдельно

  #11  
Старый 04.03.2010, 13:37
GhostOnline
Участник форума
Регистрация: 20.12.2008
Сообщений: 277
С нами: 9152955

Репутация: 84
По умолчанию

Входящая строка в edit1.text:

var
temp : TStringList;
res : tstringlist;
tmp : string;
I: Integer;
begin
temp := TStringList.Create;
res := TStringList.Create;
tmp := StringReplace(edit1.text, '{"countries":[[', '', [rfReplaceAll]);
tmp := StringReplace(tmp, '[', '', [rfReplaceAll]);
tmp := StringReplace(tmp, ']', '', [rfReplaceAll]);
temp.commatext := tmp;
i := 0;
while i < temp.Count do
begin
res.Add(temp[i] + '=' + temp[i+1]);
i := i + 2;
end;

В результате res имеет такой вид:

19=Австралия
20=Австрия
5=Азербайджан
21=Албания
22=Алжир
23=Американское Самоа
24=Ангилья
25=Ангола
26=Андорра
27=Антигуа и Барбуда
28=Аргентина
6=Армения
29=Аруба
30=Афганистан
31=Багамы
32=Бангладеш
33=Барбадос
34=Бахрейн
3=Беларусь
35=Белиз
36=Бельгия
37=Бенин
38=Бермуды
39=Болгария
40=Боливия

Тогда можно иметь такой доступ к номеру и стране:
res.NAmes[i] - номер
res.ValueFromindex[i] - страна

Чтобы просто выводился список стран:

while i < temp.Count do
begin
res.Add(temp[i+1]);
i := i + 2;
end;

Последний раз редактировалось GhostOnline; 04.03.2010 в 13:42..
 
Ответить с цитированием