如何把internetreadfile下载到的东西保存为(内存)流?(不通过保存为文件再载入的方法,第一次搞流,烦透了)

解决方案 »

  1.   

    var s : Tstringstream;
    begin
      s := Tstringstream.Create('');
      IdHTTP1.Get('http://www.csdn.net', s);
      memo1.Lines.Add(s.DataString);
      s.Free;
    end;
      

  2.   

    GZ楼上的看清楚了,这里说的是用internetreadfile函数下载
      

  3.   

    uses wininet;function GetInetFile (const fileURL, FileName: String): boolean;
    const BufferSize = 1024;
    var
        hSession, hURL: HInternet;
        Buffer: array[1..BufferSize] of Byte;
        BufferLen: DWORD;
        f: File;
        sAppName: string;
    begin
        Result:=False;
        sAppName := ExtractFileName(Application.ExeName);
        hSession := InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
        try
            hURL := InternetOpenURL(hSession, PChar(fileURL),nil,0,0,0);
            try
                AssignFile(f, FileName);
                Rewrite(f,1);
                repeat
                    InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen);
                    BlockWrite(f, Buffer, BufferLen)
                until BufferLen = 0;
                CloseFile(f);
                Result:=True;
            finally
                InternetCloseHandle(hURL)
            end;
        finally
            InternetCloseHandle(hSession)
        end;
    end;procedure TForm1.FormCreate(Sender: TObject);
    var FileOnNet, LocalFileName: string;
    begin
        FileOnNet:='http://www.csdn.net';
        LocalFileName:='c:\test.htm';
        if GetInetFile(FileOnNet,LocalFileName)=True then
            ShowMessage('Download successful')
        else
            ShowMessage('Error in file download')
    end;
      

  4.   

    to   cnhgj(戏子) 你这个是直接保存到文件的
    我自己解决了,原来是流忘了复位