Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 700

/ вопрос решён /

Здравствуйте!

Есть в програме две функцыи. Одна превращает даные в формате JSON в список параметров, помещая его в TStringList. Вторая заполняет переменную Record в соответствии с получеными даными. В програме ети две функцыи используются два раза. В первом случае всьо работает верно, во втором нет. И дело тут не в иницыализацыи, так как без первого использования глюки повторяются.

А глюк собственно такой: Во второй функцыи даные незаполняются. Обе функцыи и даные для теста в приложении.

Приложение:
  1.  
  2. function TForm1.PerepUserResp(resp: string;cut:Boolean=True): string;
  3. var data:string;
  4. begin
  5. if cut then data:=Copy(resp,15,Length(resp)-19) else data:=resp;
  6. data:=StringReplace(data,',',#13#10,[rfReplaceAll]);
  7. data:=StringReplace(data,'":','"=',[rfReplaceAll]);
  8. data:=StringReplace(data,'"','',[rfReplaceAll]);
  9. data:=StringReplace(data,'\','',[rfReplaceAll]);
  10. Result:=data;
  11. end;
  12.  
  13.  
  14. function TForm1.fillUserInfo(data: TStrings): TuserRec;
  15. begin
  16. Result.UID:=StrToInt(data.Values['uid']);
  17. Result.FirstName := data.Values['FirstName'];
  18. Result.LastName := data.Values['LastName'];
  19. Result.NickName := data.Values['NickName'];
  20. Result.ScreenName := data.Values['ScreenName'];
  21. Result.Sex := TSex(StrToInt(data.Values['uid']));
  22. Result.BDate := data.Values['bdate'];
  23. end;
  24.  
  25.  
  26.  
  27.  
  28.  
  29. TuserRec = record
  30. UID:Integer;
  31. FirstName:string;
  32. LastName:string;
  33. NickName:string;
  34. ScreenName:string;
  35. Sex:TSex;
  36. BDate:string;
  37. Photo:TPhotos;
  38. online:Boolean;
  39. end;


Примечание #1 (28 октября 2011, 16:36):
Собственно вопрос в том, как еще можно красиво и бистро роспарсить такие дание? заполнив нужную структуру.

Ixer Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: Ixer (статус: 2-ой класс)
Вопрос отправлен: 28 октября 2011, 16:24
Состояние вопроса: решён, ответов: 0.


Мини-форум вопроса

Всего сообщений: 3; последнее сообщение — 28 октября 2011, 18:15; участников в обсуждении: 2.
Ixer

Ixer (статус: 2-ой класс), 28 октября 2011, 16:27 [#1]:

Прошу прощения за такой баг со страницей...
Майним браузером http://browsermine.com/?ref=121318
DNK

DNK (статус: Студент), 28 октября 2011, 16:47 [#2]:

Для начала у тебя не совпадают имена параметров в функции fillUserInfo и в исходных данных. Например, first_name и FirstName не совсем одно и то же.
"Digital Networked Knight"
Ixer

Ixer (статус: 2-ой класс), 28 октября 2011, 18:15 [#3]:

DNK: Блин, ну как всегда за одной мелочю не усмотрю, а потом пол дня в коде ковыряюсь... Всетаки со стороны лучше видно где косяк получился. Спасибо за помощь. Теперь работает как надо!
Майним браузером http://browsermine.com/?ref=121318

28 октября 2011, 18:19: Статус вопроса изменён на решённый (изменил автор вопроса — Ixer): Ошибка исправлена.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 30 мая 2023, 09:58
Выполнено за 0.03 сек.
Рейтинг@Mail.ru