|
Вопрос # 5 700/ вопрос решён / |
|
Здравствуйте!
Есть в програме две функцыи. Одна превращает даные в формате JSON в список параметров, помещая его в TStringList. Вторая заполняет переменную Record в соответствии с получеными даными. В програме ети две функцыи используются два раза. В первом случае всьо работает верно, во втором нет. И дело тут не в иницыализацыи, так как без первого использования глюки повторяются.
А глюк собственно такой: Во второй функцыи даные незаполняются. Обе функцыи и даные для теста в приложении.
Приложение: Переключить в обычный режим-
- function TForm1.PerepUserResp(resp: string;cut:Boolean=True): string;
- var data:string;
- begin
- if cut then data:=Copy(resp,15,Length(resp)-19) else data:=resp;
- data:=StringReplace(data,',',#13#10,[rfReplaceAll]);
- data:=StringReplace(data,'":','"=',[rfReplaceAll]);
- data:=StringReplace(data,'"','',[rfReplaceAll]);
- data:=StringReplace(data,'\','',[rfReplaceAll]);
- Result:=data;
- end;
-
-
- function TForm1.fillUserInfo(data: TStrings): TuserRec;
- begin
- Result.UID:=StrToInt(data.Values['uid']);
- Result.FirstName := data.Values['FirstName'];
- Result.LastName := data.Values['LastName'];
- Result.NickName := data.Values['NickName'];
- Result.ScreenName := data.Values['ScreenName'];
- Result.Sex := TSex(StrToInt(data.Values['uid']));
- Result.BDate := data.Values['bdate'];
- end;
-
-
-
-
-
- TuserRec = record
- UID:Integer;
- FirstName:string;
- LastName:string;
- NickName:string;
- ScreenName:string;
- Sex:TSex;
- BDate:string;
- Photo:TPhotos;
- online:Boolean;
- end;
Примечание #1 (28 октября 2011, 16:36): Собственно вопрос в том, как еще можно красиво и бистро роспарсить такие дание? заполнив нужную структуру.
 |
Вопрос задал: Ixer (статус: 2-ой класс)
Вопрос отправлен: 28 октября 2011, 16:24
Состояние вопроса: решён, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 3; последнее сообщение — 28 октября 2011, 18:15; участников в обсуждении: 2.
|
Ixer (статус: 2-ой класс), 28 октября 2011, 16:27 [#1]:
Прошу прощения за такой баг со страницей...
Майним браузером http://browsermine.com/?ref=121318
|
|
DNK (статус: Студент), 28 октября 2011, 16:47 [#2]:
Для начала у тебя не совпадают имена параметров в функции fillUserInfo и в исходных данных. Например, first_name и FirstName не совсем одно и то же.
"Digital Networked Knight"
|
|
Ixer (статус: 2-ой класс), 28 октября 2011, 18:15 [#3]:
DNK: Блин, ну как всегда за одной мелочю не усмотрю, а потом пол дня в коде ковыряюсь... Всетаки со стороны лучше видно где косяк получился. Спасибо за помощь. Теперь работает как надо!
Майним браузером http://browsermine.com/?ref=121318
|
28 октября 2011, 18:19: Статус вопроса изменён на решённый (изменил автор вопроса — Ixer): Ошибка исправлена.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|