内存结构:
0018D8CC 3c 53 65 72 76 65 62 28 <Server(
0018D8D4 42 52 4F 41 44 43 41 53 <BROADCAS
0018D8DC 54 29 3E 20.... T)> a..
var
szText:array[0..127] of char;...
szText已经获得0018D8CC 的地址
问题是如何把szText转换为可以显示的字符串,如string类型?delphi中有什么函数可以实现?
0018D8CC 3c 53 65 72 76 65 62 28 <Server(
0018D8D4 42 52 4F 41 44 43 41 53 <BROADCAS
0018D8DC 54 29 3E 20.... T)> a..
var
szText:array[0..127] of char;...
szText已经获得0018D8CC 的地址
问题是如何把szText转换为可以显示的字符串,如string类型?delphi中有什么函数可以实现?
str: String;
begin
str := szText;
end;
stemp:string;
begin
stemp:=szText;
end;
var
szText:array[0..127] of byte;
p:string;
begin
szText[0]:=53;
szText[1]:=65;
szText[2]:=0;//以上是内存仿真。
p:=szText;//这步应该如何转化,因为源程序是从网络接收的数据,是C格式的字符串。如果szText:array[0..127] of char这样定义
则p:=szText后,会出现乱码。应该如何解决?
szText:array[0..127] of byte;
p:string;
begin
szText[0]:=53;
szText[1]:=65;
szText[2]:=0;//以上是内存仿真。
p:=inttostr(szText);//
szText:array[0..127] of byte;
p:string;
begin
szText[0]:=53;
szText[1]:=65;
szText[2]:=0;//以上是内存仿真。
p:=inttostr(szText[0]);//sztext是数组,要有下标
szText:array[0..127] of byte;
p:string;
begin
szText[0]:=53;
szText[1]:=65;
szText[2]:=0;//以上是内存仿真。
p:=PChar(@szText[0]);
szTest: array [0..127] of AnsiChar;
s: AnsiString;
begin
......
SetLength(s, SizeOf(szTest));
Move(szTest[0], Pointer(s)^, SizeOf(szTest));
ShowMessage(s);
end;
szText:array[0..127] of byte;
p:string;
begin
szText[0]:=53;
szText[1]:=65;
szText[2]:=0;//以上是内存仿真。
p:=PChar(@szText[0]);