![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
работа с потоком ввода [D6]
kaif © (2002-11-03 14:32:00)Пробую писать простейшие CGI на Delphi. Вывод текста как-то организовал с помощью writeln (вместо сишного stdio.h printf).
А вод прием параметров в потоке ввода для метода POST HTTP протокола не знаю, как прикрутить. В СИ этому соответствует функция fread(), а в паскале как сделать - не знаю. Нужна функция, читающая N байт из стандартного потока ввода (как бы с консоли если ввести N байт). КОличестово байт N я знаю из переменной окружения. Нужно только считатьэти байты в консольное приложение...
Или же все же СИ поставить и не мучиться?
kaif (2002-11-04 00:17:00) [1]2 Друмлин (03.11.02 17:50)
Большое спасибо!У меня это заработало!
Правда, я уже успел написать на СИ, но я очень рад, что оказалось возможным сделать то же самое и на Паскале, так как Delphi для меня привычнее, чем СИ, а в данный момент мне это нужно было лишь для понимания работы cgi как такового в связи с изучением php.
Правда у меня остался один вопрос: обычно всякие Handle надо освобождать. Видимо STD_INPUT_HANDLE или STD_OUTPUT_HANDLE освобождать не надо? По крайней мере ничего на этот счет в
Win32-SDK (Help-е) я не нашел...
Друмлин (2002-11-03 17:50:00) [2]
var stdin,stdout,I:integer; s,variable:string;
...
StdIn := GetStdHandle(STD_INPUT_HANDLE);
StdOut := GetStdHandle(STD_OUTPUT_HANDLE);
S := "";
I := StrToInt(Variable);
FileSeek(StdIn, 0, FILE_BEGIN);
SetString(S,nil , I);
FileRead(StdIn, S[1], I);