Translate

2013/01/06

Delphi unicode string VS memorystream

資料來源:
1. Wrtiting string to TMemoryStream - Pointer to string

2. 现有 Delphi 项目迁移到 Tiburon 中的注意事项

擴充的TStreamEx,在D7, Delphi XE下都可正確使用,只能說歪國人真是太厲害了,學習!

procedure TStreamEx.WriteString(const data: string);
var
  len: cardinal;
  oString: UTF8String;
begin
  oString := UTF8String(data);
  len := length(oString);
  self.WriteBuffer(len, 4);
  if len > 0 then
    self.WriteBuffer(oString[1], len);
end;

procedure TStreamEx.ReadString(const data: string);
var
  len: cardinal;
  iString: UTF8String;
begin
  self.ReadBuffer(len, 4);
  if len > 0 then
  begin
    SetLength(iString, len);
    self.ReadBuffer(iString[1], len);
    result := string(iString);
  end
  else result := '';
end;

沒有留言:

張貼留言

一山不容二虎之 EDBClient - Key violation 記事

關聯式資料庫裡有個很基本的特性:PRIMARY KEY 條件約束。 一個資料表只能有一個 PRIMARY KEY 條件約束,並且任何加入 PRIMARY KEY 條件約束的資料行都不可接受 Null 值。因為 PRIMARY KEY 條件約束保證唯一的資料,它們通常...