Форум: "Начинающим";
Текущий архив: 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.043 c