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

Вниз

Приём параметров в консольном приложении   Найти похожие ветки 

 
vajo   (2003-07-02 14:42) [0]

Имеется HTML, где вводится логин пользователя. При нажатии на кнопку Submit открывается страница
http://localhost/Test/Project2.exe?login=11&pass=22

Project2.exe - консольное приложение.

Как можно получить значения параметров login, pass, чтобы их использовать в Project2.exe?


 
jel   (2003-07-02 14:59) [1]

Если правильно понял вопрос - консольное приложение это CGI?

Тогда вроде читать со стандартного ввода и смотреть чего прочиталось.


 
vajo   (2003-07-02 15:09) [2]

? jel
А чем читать?


 
Мое имя (клоны все равно суксь)   (2003-07-02 18:40) [3]

типа TWebRequest.Query

Indicates the value of the query information (if any) of the URL specified in the HTTP request message.

property Query: string;

Description

Read Query to determine the details of a query specified in the URL of the Web client request. For example, given this URL:

http://www.TSite.com/art/gallery.cgi/mammals?animal=dog&color=black

the Query portion is

animal=dog&color=black

Query is the unparsed query portion of the URL. The query may include multiple fields separated by ampersands. Use the QueryFields property to work with the query on a field-by-field basis.


или QueryFields


 
MikeP   (2003-07-02 18:50) [4]

в общем случае (простое консольное приложение, не обязательно Web Server Application):
если параметры передаются так
http://localhost/Test/Project2.exe?login=11&pass=22

значит используется метод GET и нужно читать Envirounment Variable QUERY_STRING

если же используется метод POST (что предпочительнее в данном случае, чтобы не показывать пароль в окне броузера в открытом виде), то параметры читаются из стандартного ввода (ReadLn и пр.)
насчет их парсинга -
см. Мое имя (клоны все равно суксь) (02.07.03 18:40)


 
vajo   (2003-07-03 08:16) [5]

>MikeP

А что указать в Readln? Что он должен прочитать?


 
MikeP   (2003-07-03 10:53) [6]

2vajo
строку или символ
пока не прочитаешь столько байт сколько прописано в пер. окружения CONTENT_LENGTH


 
vajo   (2003-07-03 13:48) [7]

> MikeP
Всётаки до меня не доходит как получить параметры.
Что за переменные CONTENT_LENGTH и QUERY_STRING? В хелпе про них ничего нет.
Можно для примера кусок кода или может тогда где почитать про это можно?


 
Gigabyte   (2003-07-03 16:57) [8]

Используй стандртный Дкльфийский Wizard - WebService -> StandaloneCGI. Там за тебя все парсируется. Или смотри соответствующие исходники


 
vajo   (2003-07-04 12:35) [9]

> Gigabyte
У меня в D7 нет WebService -> StandaloneCGI


 
Palladin   (2003-07-04 14:11) [10]

1 есть там все
2 GetEnvironmentVariable


 
vajo   (2003-07-09 10:35) [11]

Помогите кусочком кода примера. Нужно получить параметры из адресной строки. Я использую метод POST.

GetEnvironmentVariable - в хелпе нет примера.


 
Palladin   (2003-07-09 10:39) [12]

и че?!!
нет примера??!!
КОШМАР!!!! УЖАС!!! Как же с таким хелпом программы писать а? и не говори


 
Anatoly Podgoretsky   (2003-07-09 10:51) [13]

Нету, но зачем он нужен для такой элементарной функции, особенно учитывая, что в справке все параметры прекрасно описаны.


 
vajo   (2003-07-09 11:55) [14]

DWORD GetEnvironmentVariable(

LPCTSTR lpName, // address of environment variable name
LPTSTR lpBuffer, // address of buffer for variable value
DWORD nSize // size of buffer, in characters
);


Parameters

lpName
Points to a null-terminated string that specifies the environment variable.

lpBuffer
Points to a buffer to receive the value of the specified environment variable.

nSize
Specifies the size, in characters, of the buffer pointed to by the lpBuffer parameter.

Где взять адрес переменной среды?
Где взять адрес буфера для значения переменной?
Как узнать размер буфера?



 
Anatoly Podgoretsky   (2003-07-09 11:58) [15]

Нигде, все это ты предоставляешь сам.


 
vajo   (2003-07-09 13:45) [16]

Ну, а к примеру какие адреса можно задать?


 
Anatoly Podgoretsky   (2003-07-09 13:49) [17]

Любые, лишь бы были действительные.


 
Palladin   (2003-07-09 14:11) [18]

тяжело тебе парень наверно...

var
vValue:PChar;

evValue:=StrAlloc(2000);
GetEnvironmentVariable("QUERY_STRING",evValue,2000);

вот, можешь скопировать...
освободить потом не забудь


 
vajo   (2003-07-10 12:10) [19]

>Palladin
Спасибо работает!
Это работает при методе GET.
А если использовать метод POST, тогда как получить параметры?


 
Palladin   (2003-07-10 14:10) [20]

при посте нужно читать из стандартного потока ввода stdin то бишь...
var
vValue:PChar;
Actual,StdIn,Size:integer;

StdIn := GetStdHandle(STD_INPUT_HANDLE);
Size := SetFilePointer(StdIn, 0, nil, FILE_END);
SetFilePointer(StdIn, 0, nil, FILE_BEGIN);
vValue:=StrAlloc(Size);
ReadFile(StdIn, vValue^, Size, Actual, nil);



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

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

Наверх





Память: 0.48 MB
Время: 0.009 c
4-33839
Antipich
2003-07-12 15:14
2003.09.11
Как сэмулировать нажатие Ctrl+V


9-33417
zorg
2003-03-06 22:23
2003.09.11
Ну хоть в этом разделе поиогут ?


1-33622
Raper
2003-09-01 17:47
2003.09.11
Кто нибудь обьясните по какой формуле работает оператор XOR


3-33426
Игорь Ч
2003-08-22 08:25
2003.09.11
При выполнении хранимой процедуры блокируется таймер !??


1-33618
_Narayan_
2003-08-31 22:23
2003.09.11
Как, по дате узнать день недели ?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский