Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.06.29;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.024 c
15-1210838747
Игорь М.
2008-05-15 12:05
2008.06.29
проблемы с видеотображением


2-1212406603
kla$1
2008-06-02 15:36
2008.06.29
перезапуск приложения


3-1200914554
Mike Kouzmine
2008-01-21 14:22
2008.06.29
"Внебрачные отношения."


15-1210717900
Житель_форума
2008-05-14 02:31
2008.06.29
Parser


15-1211185363
barakuda
2008-05-19 12:22
2008.06.29
Нужна процедура отправки письма за деньги