首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

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

2013-08-04 
关于一个怪的数据转换问题procedure TDatastrFrm.Button8Click(Sender: TObject)varl,len:integerdataHe

关于一个怪的数据转换问题
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,当然什么都看不见了。

热点排行