我想你可能是不大清楚string,pchar,array[0..x]of char 这些有关字符的转化
吧?我以前发过一份解答,现在改了一下贴过来:
1. String是Pascal使用的字符串格式.它分为ShortString,
WideString和AnsiString,String缺省为AnsiString.
ShortString的最大长度为255个字符.
AnsiString 的最大长度为2^31个字符.
WideString 的最大长度为2^30个字符.
AnsiString和WideString的区别在于字符集的不同.
AnsiString对应于AnsiChar,WideString对应于WideChar.
具体你可以参考Delphi Help中String Type帮助.
2. PChar是Delphi为了和C语言的字符串类型(char *)兼容,
以便调用Windows API而建立的数据类型.所以pchar实际是
^^^^^^^^^^^^^^^^^^^你会在调用API时频繁使用PChar
一个指针.一般使用方法是:
pchar eg1;
GetMem(eg1,Size)
...
FreeMem(eg1,Size);
你还可以用以下方法;
eg2 :array[0..Size] of char;
然后可以把eg2看作pchar来用,且它已预先分配了内存.
要注意的是定义eg2的字符数组下界必须是0 !否则将会出现错误.
3. 在Delphi 1.0中的String和PChar的相互转换为:
function StrPas(str
char):string;
function StrPCopy(Dest
char;Source:string)
char;
在Delphi 2.0和更高版本中的String和PChar的相互转换很简单:
String ->Pchar: pch :=Pchar(str)
Pchar ->String: str :=pch;