Delphi对流的操作很方便,但平时用的不多,这几天看一个传输,需要传输流信息,就简单测试了一下.(D2010)
以内存流为例:
var
ms:TMemoryStream;
ac:AnsiChar;
as:AnsiString;
s:String;
begin
ms:=TMemoryStream.Create;
ms.Write($01,1);//写入一个16进制整数
ac:='a';
ms.Write(ac,1); //写入一个ansichar
as:='abc';
for ac in as do //写入一个AnsiString;
ms.Write(ac,1);
s:='abc';
for ac in AnsiString(s) do //将一个String转为AnsiString后写入;
ms.Write(ac,1);
....
如果是String,可以使用TStringStream:
var
ss: TStringStream;
s,code:String;
i:Integer;
begin
s:='abc';
ss := TStringStream.Create(s, TEncoding.UTF8);//utf8编码形式写入,同理可以有ASCII,Unicode等
//下面可以看看转换后的编码:
code:='';
for i := 0 to ss.Size - 1 do
code:= code+ Format('%.2x ', [ss.Bytes[i]]);