Форум: "Сети";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
ВнизПередача параметров WEB-приложению Найти похожие ветки
← →
pjmg (2005-10-10 18:03) [0]Уважаемые мастера, помогите ламеру!
Мне от моей Delphi программы нужно чтоб когда юзер набирал http://localhost/cgi/proga.exe?param1=a¶m2=b то, что после первого равно считывалось в одну переменную, а после второго - в другую. Но функция ParamCount воспринимает это всё как один параметр! То есть если написать ParamStr(2) на выходе будет пустая строка. К тому же мне надо не имя параметра а его значение после равно, как я уже говорил. Подскажите, пожалуйста, что-то в учебниках про это не нашёл
← →
pjmg (2005-10-10 18:04) [1]Упс, извините. То, что в первом сообщении обозначается как непонятная закорючка на самом деле амперсанд
← →
Чапаев © (2005-10-10 18:22) [2]Строку придётся самому парсить.
← →
Seeker © (2005-10-10 18:52) [3]
...
var
VarStr:TStringList;
begin
VarStr:=TStringList.Create;
VarStr.Delimiter:="&";
VarStr.NameValueSeparator:="="; //хотя по умолчанию он равен "="
VarStr.DelimitedText:=ParamStr(1);
//далее VarStr.ValueFromIndex[0] и тд.
...
VarStr.Free;
end;
← →
pjmg (2005-10-10 21:25) [4]>Seeker
Эта функция вызывает ошибку вида "lIST INDEX OUT OF BOUNDS"
← →
pjmg (2005-10-10 21:29) [5]Ошибка не возникает только если явно задать параметры в диалоге Run->Parametrs и компилировать программу с ними. Кстати, а нельзя ли получать значение параметра не по номеру, а по имени?
← →
pjmg (2005-10-10 22:24) [6]Значение, а не название параметра возвращается только в том случае, если выбран разделитель, отличный от знака, равно, что крайне нежелательно. В противном случае сервер глючит и выдаётся ошибка 500.
← →
Чапаев © (2005-10-11 10:33) [7]
> var
> VarStr:TStringList;
> begin
> VarStr:=TStringList.Create;
> VarStr.Delimiter:="&";
> VarStr.NameValueSeparator:="="; //хотя по умолчанию он равен
> "="
> VarStr.DelimitedText:=ParamStr(1);
> //далее VarStr.ValueFromIndex[0] и тд.
> ...
> VarStr.Free;
> end;
Ух ты какой умный! Спасибо. ;-)
← →
Seeker © (2005-10-11 13:48) [8]
> pjmg
А самому тяжело подумать?
var
VarStr:TStringList;
str:string;
begin
VarStr:=TStringList.Create;
VarStr.NameValueSeparator:="?";
VarStr.Text:="http://localhost/cgi/proga.exe?param1=a&m2=b";//ParamStr(0);
str:=VarStr.ValueFromIndex[0];
if str <> "" then
begin
VarStr.Delimiter:="&";
VarStr.NameValueSeparator:="="; //хотя по умолчанию он равен "="
VarStr.DelimitedText:=str;
//далее VarStr.ValueFromIndex[0] и тд.
end;
VarStr.Free;
end;
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.043 c