天太冷了,热拌吧
procedure TForm1.btn1Click(Sender: TObject);
var
  f: file;
  i: Integer;
  buf: array[1..10239] of Byte;
begin
  AssignFile(f, 'F:\T1800.jpg');
  FileMode := 0;
  Reset(f, 1);
  BlockRead(f, buf, Length(buf));
  CloseFile(f);  with TEdit.Create(Self) do
  begin
    for i := Low(buf) to High(buf) do
      Text := Text + chr(buf[i]);
    mmo1.Text := Text;
    Free;
  end;
end;
不过这种代码没什么意义

解决方案 »

  1.   

    procedure TForm1.Button3Click(Sender: TObject);
    var memo:TMemoryStream;
        i:Integer;
        buf:array[1..10240]of Byte;
        stemp:string;
    begin
       memo:=TMemoryStream.Create;
       memo.LoadFromFile('d:\T1800.jpg');
       memo.Read(buf,Length(buf));
       for i:=Low(buf) to High(buf)do
       begin
            stemp:=stemp+chr(buf[i]);
       end;   mmo1.Text:=stemp;
    end;
      

  2.   

    memo是存放、显示文本的
    图片文件里有不可见字符
    如果为了保存,无须通过memo,流内容直接savetofile好了
      

  3.   

    6楼正解,另外我可以很明确的告诉你,我之前做过下试验,发现如果一段字符串中间含有#0,那么这个#0后面的内容都会丢失不会被保存出去。一般图片的EXIF都有大量#0。
    最保险的方法就是把图片内容读入内存后,转成Base64编码。引用TIdEncoder,然后用EncodeStream来处理图像流,让他能显示,保存时再用DecodeStream还原。
      

  4.   

    哦以上关于字符串的内容只限于直接赋值给Memo.Lines.Text其余没试。如果要处理这种字符串建议用Pchar+转义字符解决。