字符数组的问题
字符数组直接赋值是这样的
-------------------------
var
CBuffer: array[0..18] of char;
begin
CBuffer[0] := char($5B);
CBuffer[1] := char($5E);
end
--------------------------
现在我有个字符串
str := '5B5E'
我想和直接赋值一样赋给Cbuffer应该怎么写啊?
[解决办法]
str := '5B5E'
直接赋值?让数组等效于:
CBuffer[0] := char($5B);
CBuffer[1] := char($5E);
除了每2位拆开再转换成16进制,然后转成char赋值,我也想知道有没其它办法!!!!!
[解决办法]
如果不是超大的,可以下面:
i := StrToInt('$'+str);
move(@i,CBuffer[0],Length(str) div 2);
[解决办法]
i:=0;
while true do
begin
CBuffer[i]:=char(strToInt('$'+copy(str,1,2)));
delete(str,1,2);
inc(i);
if str='' then break;
end;
[解决办法]
C := S[i+1]; Case C of '0'..'9' : Byte(CBuffer[i]) := Byte(C)-$30; 'A'..'F' : Byte(CBuffer[i]) := Byte(C)-65 + 10; 'a'..'f' : Byte(CBuffer[i]) := Byte(C)-97 + 10 else 出错处理; end;