![]() |
[Delphi] Вопрос на засыпку 2
конечно туповато такое спрашивать, однако мне нужна помощь ваша. вопрос. Как с помощью операторов Copy, Pos, Delete, Length сделать список из этого?
Код:
{"countries":[[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,"Боливия"] |
Код (в коде думаю ты сам разберешься, а если не сможешь разобраться -> моя личка открыта):
Код:
procedure TForm1.FormCreate(Sender: TObject); |
Цитата:
|
Цитата:
зачем мне RegExpr для таких протстых операций?)) |
Цитата:
|
при загрузке больших данных, вылетает с ошибкой is not valid integer value. я попробую сам разобраться. спасибо!
|
Цитата:
просто список стран в столбик)) |
Цитата:
Ога, для таких простых операций есть же античат |
я могу и сам это сделать. друзей вк получилось разделить)) ну если тебе в лом помочь мне - ладно. я пойму, но наезжать то зачем?
|
Вот решение с помощью TStringList:
Код:
|
Входящая строка в 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; |
спасибо парни! помогли!
|
Берешь любой JSON парсер и всё. Могу дать свою реализацию.
|
PHP код:
|
| Время: 20:08 |