读书人

关于一个怪的数据转换有关问题

发布时间: 2013-08-04 18:26:16 作者: rapoo

关于一个怪的数据转换问题
procedure TDatastrFrm.Button8Click(Sender: TObject);
var
l,len:integer;
dataHex:array[0..1024] of Char;
sendstr:string;
begin
len:=length(trim(memo2.Text));
for l:=((Len-1)div 2) downto 0 do
begin
dataHex[l]:=Chr(StrToInt('$'+copy(trim(memo2.Text),l*2+1,2)));
end;
for l:=0 to ((Len-1)div 2) do
begin
sendstr:=sendstr+dataHex[l]
end;
memo3.Lines.Add(sendstr);
showmessage(sendstr+inttostr(length(sendstr)));
end;

其中,memo2中的内容如果为:
memo2.Lines.Add(Edit1.text+Memo1.text);如(000BCFC2D0D0CBD9B6C8)就不行,Sendstr就输出为空。
但如果为
memo2.Lines.Add(Memo1.text);如(CFC2D0D0CBD9B6C8)就完全没有问题,可以正常的输出16进制数值类型。这把我弄糊涂了,为何加起来就不行。
[解决办法]
000BCFC2D0D0CBD9B6C8,这个字串中第一个“00”,它的ASCII码代表字符:NULL(键盘输入时可以按Ctrl+0),是一个不可见字符。转换成字符数组(也就是字符串)的第一字符为NULL,当然什么都看不见了。

读书人网 >.NET

热点推荐