关于文本文件操作?!
如何打开一个文本文件
并把该文件的所有文本存到一个st1字符串中呢??

解决方案 »

  1.   

    with TStringList.Create do try
      LoadFromFile('c:\temp.txt');
      st1 := Text;
    finally
      Free
    end;
      

  2.   

    同意。memo控件也可以这么用。
      

  3.   

    with TStringList.Create do try
      LoadFromFile('c:\temp.txt');
      st1 := Text;
    finally
      Free
    end;
      

  4.   

    var filevar: textfile; buf:string; begin assignfile(filevar,'txt.txt'); append(filevar); writeln(filevar,buf); closefile(filevar); end;
      

  5.   

    var f: TextFile;
      s, stl: string;
    begin
      AssignFile(f, 'd:\z.txt');
      Reset(f);
      stl := '';
      while not Eof(f) do begin
        Readln(f, s);
        stl := stl + s + #13#10;
      end;
      CloseFile(f);
      ShowMessage(stl);
    end;
      

  6.   

    同意楼上的
    不过我认为用TStringList效果要好一点
      

  7.   

    浪费表情,前提要说在前面~~
    还以为很便宜的就捡到了分~~
    呵呵~~灌呀~~(*//
    标题:充分利用pascal字符串类型
    说明:和PChar不同,string可以保存#0字符在其中;示例文件、内存流字符串之间转换
    设计:Zswang
    日期:2002-01-25
    支持:[email protected]
    //*)///////Begin Source
    function StringToFile(mString: string; mFileName: TFileName): Boolean;
    { 返回字符串保存到文件是否成功 }
    var
      vFileChar: file of Char;
      I: Integer;
    begin
      {$I-}
      AssignFile(vFileChar, mFileName);
      Rewrite(vFileChar);
      for I := 1 to Length(mString) do Write(vFileChar, mString[I]);
      CloseFile(vFileChar);
      {$I+}
      Result := (IOResult = 0) and (mFileName <> '');
    end; { StringToFile }function FileToString(mFileName: TFileName): string;
    { 返回从文件载入字符串 }
    var
      vFileChar: file of Char;
      vChar: Char;
    begin
      Result := '';
      {$I-}
      AssignFile(vFileChar, mFileName);
      Reset(vFileChar);  while not Eof(vFileChar) do begin
        Read(vFileChar, vChar);
        Result := Result + vChar;
      end;
      CloseFile(vFileChar);
      {$I+}
    end; { FileToString }function StreamToString(mStream: TStream): string;
    { 将内存流转换成字符串 }
    var
      I: Integer;
    begin
      Result := '';
      if not Assigned(mStream) then Exit;
      SetLength(Result, mStream.Size);
      for I := 0 to Pred(mStream.Size) do try
        mStream.Position := I;
        mStream.Read(Result[Succ(I)], 1);
      except
        Result := '';
      end;
    end; { StreamToString }function StringToStream(mString: string; mStream: TStream): Boolean;
    { 返回将字符串保存到内存流是否成功 }
    var
      I: Integer;
    begin
      Result := True;
      try
        mStream.Size := 0;
        mStream.Position := 0;
        for I := 1 to Length(mString) do mStream.Write(mString[I], 1);
      except
        Result := False;
      end;
    end; { StringToStream }
    ///////End Source///////Begin Demo
    procedure TForm1.Button1Click(Sender: TObject);
    var
      vMemoryStream: TMemoryStream;
    begin
      Memo1.Text := FileToString('C:\WINDOWS\Desktop\1.txt');
      vMemoryStream := TMemoryStream.Create;
      try
        Memo1.Lines.SaveToStream(vMemoryStream);
        Memo2.Text := StreamToString(vMemoryStream);
      finally
        vMemoryStream.Free;
      end;
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
      vMemoryStream: TMemoryStream;
    begin
      StringToFile(Memo2.Text, 'C:\WINDOWS\Desktop\1.txt');
      vMemoryStream := TMemoryStream.Create;
      try
        StringToStream(Memo2.Text, vMemoryStream);
        vMemoryStream.Position := 0;
        Memo1.Lines.LoadFromStream(vMemoryStream);
      finally
        vMemoryStream.Free;
      end;
    end;
    ///////End Demo