rocedure TForm1.Button1Click(Sender: TObject);var
  iFileHandle: Integer;
  iFileLength: Integer;
  iBytesRead: Integer;
  Buffer: PChar;
  i: Integer
begin
  if OpenDialog1.Execute then
  begin
    try
      iFileHandle := FileOpen(OpenDialog1.FileName, fmOpenRead);
      iFileLength := FileSeek(iFileHandle,0,2);
      FileSeek(iFileHandle,0,0);
      Buffer := PChar(AllocMem(iFileLength + 1));
      iBytesRead := FileRead(iFileHandle, Buffer, iFileLength);
      FileClose(iFileHandle);      for i := 0 to iBytesRead-1 do
      begin
        StringGrid1.RowCount := StringGrid1.RowCount + 1;
        StringGrid1.Cells[1,i+1] := Buffer[i];
        StringGrid1.Cells[2,i+1] := IntToStr(Integer(Buffer[i]));
      end;
    finally
      FreeMem(Buffer);
    end;
  end;
end;

解决方案 »

  1.   

    对文本文件用readln过程,一行一行地读取文本。将file定义为TextFile.
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      sFile:TextFile;
      s:string;
    begin
      if OpenDialog1.Execute then
      begin
        AssignFile(sFile,OpenDialog1.FileName);
        reset(sFile);
        While not eof(sFile) do
        begin
          readln(sFile,s);
          Memo1.Lines.Add(s) //这里可以进行你的计算!
        end;
        CloseFile(sFile);
      end;
    end;
      

  3.   

    //richedit读取数据procedure TForm1.Button1Click(Sender: TObject);var
      Buffer: PChar;
      Size: Byte;
    begin
      Size := Edit1.GetTextLen;       {Get length of string in Edit1}
      Inc(Size);                      {Add room for null character}
      GetMem(Buffer, Size);           {Creates Buffer dynamic variable}
      Edit1.GetTextBuf(Buffer,Size);  {Puts Edit1.Text into Buffer}
      Edit2.Text := StrPas(Buffer);   {Converts Buffer to a Pascal-style string}
      FreeMem(Buffer, Size);{Frees memory allocated to Buffer}
    end;Note: the same thing could be accomplished more simply as follows:procedure TForm1.Button1Click(Sender: TObject);begin
      Edit2.Text := Edit1.Text;end;
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      sFileName: string;
    begin
      if OpenDialog1.Execute then
      begin
        sFileName := OpenDialog1.FileName;
        Memo1.Lines.LoadFromFile(sFileName);
      end;
    end;