works:programmer:delphi:delphi-fast-stream-to-string

Очень быстрый способ перенести данные с TStream в Ansi строку

Самый быстрый из мне известных способов прочитать строку из потока.

    procedure StreamToString(var AStr: string; AData: TStream);
    var nLen: Int64;
    begin
        nLen := Math.Min(AData.Size, 2147483647);
        SetLength(AStr, nLen);
        AData.Seek(0, soFromBeginning);
        AData.Read(PChar(AStr)^, nLen);
    end;
    procedure TForm1.FormCreate(Sender: TObject);
    var
        Response: string;
    begin
        HttpCli1.URL := 'http://forum.rukilovolt.info/index.php';
        HttpCli1.RcvdStream := TMemoryStream.Create;
        HttpCli1.Get;
 
        StreamToString(Response, HttpCli1.RcvdStream);
        Memo1.Lines.Text := Response;
 
        HttpCli1.RcvdStream.Free;
        HttpCli1.RcvdStream := nil;
    end;
works/programmer/delphi/delphi-fast-stream-to-string.txt · Last modified: 2022/09/02 12:41 by Chugreev Eugene