delphi XE string內存結構

procedure TForm1.Button1Click(Sender: TObject);
var
  stm: TMEMORYStream;
  buff: array of AnsiChar;

  p: PansiChar;
  s: AnsiString;

  I: INTEGER;
begin
  stm := TMEMORYStream.Create();
  stm.LoadFromFile('c:\11.txt');
  stm.Position := 0;

  SetLength(buff, 17); //字符數組轉字符,結尾需要加#0,不然結尾會多其他符號。
  ZeroMemory(@buff[0], 17);
  stm.ReadBuffer(buff[0], 16);
  p := @buff[0];
//  s := AnsiString(buff); //亂碼
  s := p;
  ShowMessage(s);

  SetLength(buff, 16);
  ZeroMemory(@buff[0], 16);
  stm.Position := 0;
  stm.ReadBuffer(buff[0], 16);
//  for i  := 0 to 7 do  //循環賦值可以
//    s := s + buff[i];
  setlength(s, 16);
  copymemory(@s[1], @buff[0], 16);

  ShowMessage(s);

  stm.Free;
end;

end.
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章