关于用clientsocket控件发送字符串长度问题,很奇怪!!!

zhouhuilun 2003-02-20 11:29:07
我是在D6中用length函数得到一串汉字(包括标点符号)的长度后放到一个byte类型中去,奇怪的问题就发生了,用length得到的长度和我抓包发现的长度相差6字节,而我showmessage那个byte的值和length得到的长度一样,当字符串为字母时又是对的,不知道是怎么回事!!!!!????
...全文
56 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hzxswfj 2003-02-21
  • 打赏
  • 举报
回复
var
test1:string;
test2:widestring;
begin
test1:='测试123';
test2:='测试123';
showmessage(inttostr(sizeof(test1)));
showmessage(inttostr(sizeof(test2)));
end;
长度一样了.
hzxswfj 2003-02-21
  • 打赏
  • 举报
回复
大家注意:
length与sizeof的区别.
hzxswfj 2003-02-21
  • 打赏
  • 举报
回复
var
test1:string;
test2:widestring;
begin
test1:='测试123';
test2:='测试123';
showmessage(inttostr(sizeof(test1))); //得到7
showmessage(inttostr(sizeof(test2))); //得到5
end;
lastshrill 2003-02-21
  • 打赏
  • 举报
回复
用string吧,你可以看看Pchar
zhouhuilun 2003-02-21
  • 打赏
  • 举报
回复
那我到底应该把它定义成哪种类型才能和发出去的长度对的上??
outer2000 2003-02-21
  • 打赏
  • 举报
回复
LENGTH得到的长度和你的STRING定义有关;
procedure TForm1.Button1Click(Sender: TObject);
var
test1:string;
test2:widestring;
begin
test1:='测试123';
test2:='测试123';
showmessage(inttostr(length(test1))); //得到7
showmessage(inttostr(length(test2))); //得到5
end;

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧