Вверх ↑
Ответов: 655
Рейтинг: 18
#1: 2018-03-07 12:14:20 ЛС | профиль | цитата
Netspirit, Ваши pipes работаю отлично,пользуемся)))

Тормоза победил, дело было в антивирусе который рьяно проверял новые файлы. Не могли бы вы подсказать по компоненту Console следующий момент - я передаю данные методом POST, мне известен размер файла. Пытаюсь считать из с точки InParams необходимое кол-во байт.
В коде компонента вижу, что считывание STDIN происходит 1 раз при инициализации компонента. Однако Apache и любой другой Web сервер будет передать данные частями.

Вод процедура инициализации.



procedure THIConsole.InitParams;
var
ss,STR:string;
StdIn, Size, Actual: cardinal;
begin
if _prop_Method = 0 then begin
// Читаем переданные параметры из переменной окружения
SetLength( SS, 10000 );
GetEnvironmentVariable( 'QUERY_STRING', @SS[1], 2000 );
InParams := PChar( @SS[1] )
end else begin
// Читаем переданные параметры из STDIN
StdIn := GetStdHandle( STD_INPUT_HANDLE );
Size := SetFilePointer( StdIn, 0, nil, FILE_END );
SetFilePointer( StdIn, 0, nil, FILE_BEGIN );
if (Size <= 0) then Exit;
SetLength(InParams, Size);
ReadFile( StdIn, InParams[1], Size, Actual, nil );
end;
end;

Прошу помочь, я добавил верхнюю точку "PLength" (длинна данных для POST), как мне сделать чтобы InitParams читал до конца длинны данных из PLength? Сейчас считываются первые поступившие данные и все.
Вопрос номер 2 как вывести считанные данные не на нижнюю точку (InParams) а поток (допустим точка будет называться onPost)
карма: 0

0