您的位置:首页 > 其它

string,pchar,array of char之间的转化(转贴)

2010-01-06 16:09 274 查看
string,pchar,array of char之间的转化2009-07-09 10:15设有以下三个变量:
var
s:string;
p:pchar;
a:array[1..20] of char;
那么三者之间的转换如下:
1、字符串到PChar
p:=PChar(s);
2、PChar到字符串
s:=p;
3、PChar到字符数组
StrCopy(@a,p);
4、字符数组到PChar
PChar(@a);
5、字符串与字符数组之间的转换就只有通过PChar来中转了。例如下面这个例子:
procedure TForm1.btn1Click(Sender: TObject);
var
str:array[1..10] of char;
begin
StrCopy(@str,PChar(mmo1.Text));
mmo2.Text:=PChar(@str);
end;

StrCopy, StrCat example

procedure TForm1.Button1Click(Sender: TObject);

var
Buffer: PChar;
begin
GetMem(Buffer,Length(Label1.Caption) + Length(Edit1.Text) + 1);
StrCopy(Buffer, PChar(Label1.Caption));
StrCat(Buffer, PChar(Edit1.Text));
Label1.Caption := Buffer;
Edit1.Clear;
FreeMem(Buffer);
end;

另外当把Pointer型转换为字符串时,用PChar()就行:

procedure TForm1.commReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
sbuf,hexstr:string;
buf:array of byte;
i:integer;
begin
sbuf:='';
sbuf:=PChar(Buffer);
buf:=Buffer;

hexstr:='';
for i:=0 to BufferLength-1 do
hexstr:=hexstr+IntToHex(Buf[i],2)+' ';
if cbHex.Checked then
memLog.Text:=memLog.Text+hexstr
else
memLog.Text:=memLog.Text+sbuf;
end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: