DelphiXE3下的字符串
var
begin
end;
1、在Delphi7中显示结果
也就是说在delphi7中,String代表的是AnsiString类型;Length得到的是字符串的字节长度,strName[1]得到的是字符串的第一个字节,因为汉字占用两个字节,所以没有显示“中”这个字符
2、在DelphiXE3中显示结果
也就是说在delphixe3中,String代表的是WideString类型;Length得到的是字符串的字符长度,strName[1]得到的是字符串的第一个字符,想得到字符串的字节长度,可使用System.SysUtils.ByteLength(strName)函数。
我们来看一下ByteLength的实现:
function ByteLength(const S: string):
Integer;
begin
end;
发现了什么?计算结果是:字符长度*SizeOf(Char),而SizeOf(Char)=2,因为Char类型在DelphiXE3下代表的是WideChar,占用两个字节的空间。
3、DelphiXE3下的字符串流操作
// 将字符串写入流
procedure
WriteStringToStream(AStream: TStream; Const AStr: String);
var
begin
end;
// 从流中读取字符串
procedure ReadStringFromStream(AStream:
TStream;
var
begin
end;
4、DelphiXE3下的字符串和字节数组的转换
procedure GetBytesFromString(Value: String);
var
begin
end;
procedure GetStringFromBytes(Value: TBytes);
var
begin
end;