高手请进!!!急急急!!!(200分)

  • 主题发起人 主题发起人 pengmikor
  • 开始时间 开始时间
P

pengmikor

Unregistered / Unconfirmed
GUEST, unregistred user!
我在用SOCKET通信的程序时碰到一个问题,如下:
我编SERVER端。CLIENT由别人开发,他是用vc。我们定义通信包的格式,在VC格式是这样的:
struct{
unsigned char fields[8][16];
}pub_socket;
我在delphi中对应的格式是:
type FIELD=array[0..7,0..15]of byte;
PUB_SOCKET=RECORD
Fields:FIELD;
end;
不知我这样对应是否正确。client传过来的是ascii码串,如fields[0]里面是0x30 0x31 0x33 ......
而且是不定长的,我该怎样把它转换成字符串如'0123....'。同时,在我发应答包时又怎样把
'0123....'转换成0x30 0x31......。
 
SetString(s, Fields, sizeof(8 * 16));
反之:
(没找到函数,反正是内存复制就行了)
 
var
i: integer;
a: AnsiString;
begin
a := '';
for i := 0 to 15 do //将数字转换为字符串
begin
a := a + chr(Fields[0]);
end;

a := '';
for i := 0 to 7 do //将字符串转换为数字
begin
Fields[0] := ord(a[i+1]);
end;

end;
 
Delphi中,array可以直接转换成String
反之,strcopy/strlcopy
 
多人接受答案了。
 
后退
顶部