![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 24.02.2010
Сообщений: 148
|
![]()
Использование протокола SOAP импортирую (http://api.a1agregator.ru/api.wsdl)
делаю аpi.pas прикручиваю к основной программе и все гуд кроме вот чего у некоторых функциях возвращаемое значение типа Variant и я не знаю как с ним бороться уже неоднократно гуглил этот тип но все никак не пойму как вытащить ответ с функции в текст ! мне кажется что я неправильно что то делаю может импорт неправильно провожу у меня delphi 2007 если кто знает подскажите заранее большое спасибо! маленький пример того как я все реализовую: Код:
а в ответ функции ShowBasicVariantType() я получаю varVariant или varNull. сама функция ShowBasicVariantType() приведена ниже: Код:
Последний раз редактировалось Stilet; 29.08.2011 в 17:12. Причина: неполное описание |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 24.02.2010
Сообщений: 148
|
![]()
листинг аpi.pas
___________________________________ ___________________________________ _________________ Код:
Последний раз редактировалось Stilet; 29.08.2011 в 17:13. |
![]() |
![]() |
![]() |
#3 |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
![]()
getCountries, судя по множ.числу в названии ф-ции, возвращает список значений. Этот список вполне вероятно представлен динамическим или вариантным массивом (второе более вероятно).
Отсюда видно направление куда копать - в сторону VarArrayDimCount, VarArrayLowBound, VarArrayHighBound. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 24.02.2010
Сообщений: 148
|
![]()
mss если не затруднит можно привести пример такой реализации !
я реализовал так: var I: Byte; begin I:= VarArrayDimCount((HTTPRIO1 as ApiPortType).getCountries); If I<>0 then MessageDlg( 'размерность массива:'+ IntToStr(I), mtInformation, [mbOk], 0) else MessageDlg( 'переменная не являеться Variant-масивом', mtInformation, [mbOk], 0); получаю 1 то-есть одномерный массив но как из него строки вытащить ? Последний раз редактировалось fucil; 29.08.2011 в 17:31. |
![]() |
![]() |
![]() |
#5 |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
![]() Код:
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 24.02.2010
Сообщений: 148
|
![]()
да я точно так же сделал но только хотел сразу вывод в мемо сделать а он мне ясен пень ошибку ! Проблема сообственно в том как перевести в строку.
код: ____________________ Код:
raised exception class EVariantTypeCastError with message 'Could not convert variant of type (ArrayVariant) into type (String)'. Process stopped. Use step or Run to continue Последний раз редактировалось fucil; 29.08.2011 в 18:11. |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
ListBox1.Items.Add(VarToStr(Countri es[i]);
Скобки то посчитай
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 24.02.2010
Сообщений: 148
|
![]()
он не может конвертнуть ArrayVariant в string ПОМОГИТЕ ПОЖАЛУЙСТА !
|
![]() |
![]() |
![]() |
#9 |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
![]()
Ну так выясни не является ли Countries[i] таким же вариантным массивом как и Countries !
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 24.02.2010
Сообщений: 148
|
![]()
mss помоги реализовать вывод c этого вариантного массива а TListBox или Memo. А то я чет я все никак не пойму что к чему я ещё не особо силен в программировании заранее спасибо !
Я пока погуглю если будит минутка ответь ! Последний раз редактировалось fucil; 30.08.2011 в 10:36. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Variant как параметр по умолчанию | Gregor | Общие вопросы Delphi | 4 | 06.05.2011 11:15 |
Тип Variant | Дэкан1 | Помощь студентам | 1 | 21.05.2010 20:31 |
тип Variant | Михаил Юрьевич | Общие вопросы Delphi | 3 | 31.01.2008 09:05 |
как variant из текста преобразовать в булин? | Deceased | Общие вопросы Delphi | 10 | 18.12.2007 10:24 |