readstream
readln
在编译是提示找不到

解决方案 »

  1.   

    readln是什么呀?我看了半天也没找到在哪定义的
      

  2.   

    但在帮助里可以查到readln和readstream
      

  3.   

    TIdTCPConnection倒是有一个READSTREAM,不知道是不是你要的
      

  4.   

    你这样写吧
    procedure TForm1.SpeedButton1Click(Sender: TObject);
    var
     ReadFile: TMemoryStream;
     readStream: TStream;
     RecevFileName: string;
    begin
     TCPClient1.RemoteHost:= Edit1.Text;//服务器的地址为Edit1的内容(端口我们已经指定为8090,这个是在属性面板里面设置的  )
       TCPClient1.Connect;//连接到服务器
       while TCPClient1.Connected do
       begin
         ReadFile := TMemoryStream.Create;//创建一个TMemoryStram对象
          try
           TCPClient1.RecevFileName:=TCPClient1.ReadLn;//从服务器端获得文件名
           listbox1.Items.Add('Receving file ' + RecevFileName);//显示到ListView中
           ReadStream(ReadFile,-1,True);
           //以流模式从服务器端获得文件内容,参数分别是ReadFile表示流对象,-1表示一直读取直到对方断开,True表示在NT操作系统下提高性能,对9x无效
           listbox1.items.Add('Total ' + IntToStr(ReadFile.Size) + ' Bytes recevied');//显示总共接收到多少数据
           ReadFile.Seek(0, soFromBeginning);//定位流指针到开始
           ReadFile.SaveToFile(ExtractFileName(RecevFileName));//把流中的内容保存到文件中去
          finally
           TCPClient1.Disconnect;//断开连接
            ReadFile.Free;//释放流对象
          end;
        end;
    end;
      

  5.   

    我不知道TCPClient1是什么东东,看你的好象是一个用来连接的东东,
    TCPClient1.RecevFileName:=TCPClient1.ReadLn;可能错了,
    大概是这样RecevFileName:=TCPClient1.ReadLn;
    你看一下TCPClient1有没有ReadLn方法
      

  6.   

    我没找到叫tcpclient的控件,不过这不重要,重要的是它有没有ReadLn方法,
      

  7.   

    好象错的地方还不止一个
    ReadStream(ReadFile,-1,True);也有问题?看你的意思是说ReadStream是tcpclient的一个方法,可你有定义了一个变量叫readStream: TStream,这不混淆了吗?而且好象也没用到readStream变量
      

  8.   

    它没有readln方法,对了readstream定义错了,不好意思啊
    它也是直接调readstream
      

  9.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs,IdBaseComponent,
      IdComponent, IdTCPConnection, IdTCPClient,IdAntiFreezeBase,IdAntiFreeze,
      StdCtrls, Buttons, Sockets;type
      TForm1 = class(TForm)
        TcpClient1: TTcpClient;
        ListBox1: TListBox;
        SpeedButton1: TSpeedButton;
        Edit1: TEdit;
        procedure SpeedButton1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.SpeedButton1Click(Sender: TObject);
    var
     ReadFile: TMemoryStream;
     RecevFileName: string;
    begin
     TCPClient1.RemoteHost:= Edit1.Text;//服务器的地址为Edit1的内容(端口我们已经指定为8090,这个是在属性面板里面设置的  )
     with TCPClient1 do
     begin
       Connect;//连接到服务器
       while Connected do
       begin
         ReadFile := TMemoryStream.Create;//创建一个TMemoryStram对象
          try
    //       RecevFileName:=ReadLn;//从服务器端获得文件名
           listbox1.Items.Add('Receving file ' + RecevFileName);//显示到ListView中
    //       ReadStream(ReadFile, -1, True);
           //以流模式从服务器端获得文件内容,参数分别是ReadFile表示流对象,-1表示一直读取直到对方断开,True表示在NT操作系统下提高性能,对9x无效
           listbox1.items.Add('Total ' + IntToStr(ReadFile.Size) + ' Bytes recevied');//显示总共接收到多少数据
           ReadFile.Seek(0, soFromBeginning);//定位流指针到开始
           ReadFile.SaveToFile(ExtractFileName(RecevFileName));//把流中的内容保存到文件中去
          finally
            Disconnect;//断开连接
            ReadFile.Free;//释放流对象
          end;
       end;
     end;
    end;end.
      

  10.   

    我没有TTcpClient控件,不过我想如果它有ReadStream方法,你这样传文件应该
    没有问题,至于文件名,你可以用其他方法得到,比如传个字符串,
    你还是先研究一下TTcpClient吧,我猜它应该有个传文件名的方法