Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.06.29;
Скачать: [xml.tar.bz2];

Вниз

String to Ole   Найти похожие ветки 

 
Igor   (2008-06-02 11:17) [0]

Подскажите пожалуйста функцию преобразования строки в олевариант


 
Сергей М. ©   (2008-06-02 11:19) [1]

MyOleVariantVariable := MyStringvalue;


 
Igor   (2008-06-02 11:20) [2]

я пробовал просто присваивать, ругается что неверный тип варианта


 
Сергей М. ©   (2008-06-02 11:22) [3]

А у меня не ругается.

Что я делаю неправильно ?


 
Palladin ©   (2008-06-02 11:23) [4]


> Сергей М. ©   (02.06.08 11:22) [3]

Он тебя боится и ругается просебя :)


 
Igor   (2008-06-02 11:25) [5]

тогда может чтото тут не так:

   vHeaders:= "Content-Type: application/x-www-form-urlencoded"+ #10#13#0;
   vPostData:= VarArrayCreate([0, Length(pdata2)], varByte);
   for iLoop := 0 to Length(pdata2)- 1 do vPostData[iLoop]:= Ord(pdata2[iLoop+ 1]);
   vPostData[Length(pdata2)]:= 0;
   TVarData(vPostData).vType:= varArray;
   vWebAddr:= lurl;
   vFlags:= EmptyParam;
   vFrame:= EmptyParam;
   mf.wb.Navigate2(vWebAddr, vFlags, vFrame, vPostData, vHeaders);


функция выполняется но появляется сообщение что неверный тип варианта


 
Сергей М. ©   (2008-06-02 11:27) [6]

И гдк в этом коде попытка преобразования строки в в олевариант ?


 
Igor   (2008-06-02 11:28) [7]

lurl строка,
vWebAddr:= lurl;


 
Сергей М. ©   (2008-06-02 11:31) [8]

Где и как объявлен идентификатор lurl ?


 
Igor   (2008-06-02 11:33) [9]

в функции


function log_in(login: string): boolean;              
var
 i, iLoop: integer;
 pass,method,pdata,lurl,str1,pdata2,lurl2: string;
 vWebAddr, vPostData, vFlags, vFrame, vHeaders: OleVariant;
begin
 ....


 
Сергей М. ©   (2008-06-02 11:35) [10]

И ты настаиваешь, что ошибка возникает именно на этой строчке

vWebAddr:= lurl;

?


 
Сергей М. ©   (2008-06-02 11:39) [11]


> vPostData:= VarArrayCreate([0, Length(pdata2)], varByte);
> TVarData(vPostData).vType:= varArray;


Это что вообще за выкрутасы ?


 
Igor   (2008-06-02 11:40) [12]


function log_in(login: string): boolean;              
var
 i, iLoop: integer;
 pass,method,pdata,lurl,str1,pdata2,lurl2: string;
 vWebAddr, vPostData, vFlags, vFrame, vHeaders: OleVariant;
begin
   pdata2:="...";
   lurl:="...";
   vHeaders:= "Content-Type: application/x-www-form-urlencoded"+ #10#13#0;
   vPostData:= VarArrayCreate([0, Length(pdata2)], varByte);
   for iLoop := 0 to Length(pdata2)- 1 do vPostData[iLoop]:= Ord(pdata2[iLoop+ 1]);
   vPostData[Length(pdata2)]:= 0;
   TVarData(vPostData).vType:= varArray;
   vWebAddr:= lurl;    
   vFlags:= EmptyParam;
   vFrame:= EmptyParam;
   mf.wb.Navigate2(vWebAddr, vFlags, vFrame, vPostData, vHeaders);
 end;
end;


да, функция выполняется, но ошибка что неверный тип варианта появляется


 
Сергей М. ©   (2008-06-02 11:42) [13]

Ответь на [10], [11]


 
Igor   (2008-06-02 11:43) [14]

преобразовываю строку в оле


 
Сергей М. ©   (2008-06-02 11:44) [15]


> преобразовываю строку в оле


Где ?


 
Igor   (2008-06-02 11:45) [16]

vPostData:= VarArrayCreate([0, Length(pdata2)], varByte);
  for iLoop := 0 to Length(pdata2)- 1 do vPostData[iLoop]:= Ord(pdata2[iLoop+ 1]);
  vPostData[Length(pdata2)]:= 0;
  TVarData(vPostData).vType:= varArray;


 
Сергей М. ©   (2008-06-02 11:50) [17]

А в [7] тогда что ?


 
Igor   (2008-06-02 11:54) [18]

я подумал что там ошибка)


 
Igor   (2008-06-02 11:55) [19]

просто больше негде, выполняется, а ошибка показывает. а так вроде все правильно


 
Сергей М. ©   (2008-06-02 12:00) [20]

Нет и не может быть там ошибки.

Ошибка в [16].

За каким лешим ты создаешь вариантный массив ?

vPostData := pdata2;

И все ! И никаких прыжков с бубном вокруг масcивов, вариантных переменных и их типов !


 
ЮЮ ©   (2008-06-02 12:05) [21]

> просто больше негде, выполняется, а ошибка показывает. а
> так вроде все правильно


Для таких выводов следует во всех случаях использовать ОДИН И ТОТ ЖЕ СПОСОБ преобразованмя.


 
Igor   (2008-06-02 12:18) [22]

>vPostData := pdata2;

я так попробовал, теперь перестал логиниться на сайт
а в моем варианте логиниться, но показывает ошибку :(


 
Сергей М. ©   (2008-06-02 12:24) [23]

А что у тебя в pdata2 находится ?


 
Igor   (2008-06-02 12:27) [24]

строка, например:

login=<%login>&passwd=<%pass>&retpath=http%3A%2F%2Fmail.yandex.ru%2F%3Ffrom%3Dmail%26r%3Did43528303


я ее передаю, чтобы залогинится на сайт


 
Сергей М. ©   (2008-06-02 12:36) [25]

а в vHeaders что ?


 
Igor   (2008-06-02 12:41) [26]

vHeaders:= "Content-Type: application/x-www-form-urlencoded"+ #10#13#0;

в примере видел


 
Сергей М. ©   (2008-06-02 12:43) [27]

И где у тебя заголовок, специфицирующий ContentLength ?


 
Сергей М. ©   (2008-06-02 12:44) [28]


> Igor   (02.06.08 12:41) [26]
>
> vHeaders:= "Content-Type: application/x-www-form-urlencoded"+
> #10#13#0;


> Igor   (02.06.08 11:25) [5]
>
>    vHeaders:= "Content-Type: application/x-www-form-urlencoded"+
> #10#13#0;


Чему верить ?


 
Anatoly Podgoretsky ©   (2008-06-02 12:46) [29]

> Igor  (02.06.2008 12:41:26)  [26]

Это что за уродство #10#13#0;? Кульхацкер что ли?


 
Igor   (2008-06-02 12:46) [30]

а что не так? одинаковые

>И где у тебя заголовок, специфицирующий ContentLength ?

а как это сделать?


 
Igor   (2008-06-02 12:48) [31]

я же сказал, примере видел


 
Igor   (2008-06-02 12:50) [32]

если не сложно, подскажите как правильнно сделать. спасибо.


 
Anatoly Podgoretsky ©   (2008-06-02 12:52) [33]

Ответь на [32]


 
Сергей М. ©   (2008-06-02 12:52) [34]


> как это сделать?
>


vHeaders:= "Content-Type: application/x-www-form-urlencoded"#13#10"Content-Length: "+IntToStr(Length(pdata2))+#13#10;


 
Igor   (2008-06-02 13:00) [35]

сделал vHeaders как в [34]
и vPostData просто присвоил pdata2 (без всех этих преобразований)
итог: не логиниться

если постдата делать по старому, логиниться, но ошибка "Неверный тип варианта"


 
Сергей М. ©   (2008-06-02 13:02) [36]

http://www.delphisources.ru/pages/faq/base/browser_post.html



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.06.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.52 MB
Время: 0.051 c
11-1190587748
Jon
2007-09-24 02:49
2008.06.29
Database large object


2-1212434898
Jeqa
2008-06-02 23:28
2008.06.29
учет


2-1212261234
Вася
2008-05-31 23:13
2008.06.29
Помогите!!!


2-1212493835
Igor
2008-06-03 15:50
2008.06.29
Treeview


2-1212319062
Kiril
2008-06-01 15:17
2008.06.29
Сколько пользователей "потянет" Delphi (ADO) + Access?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский