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

一个简单的转换有关问题,求解

2013-07-04 
一个简单的转换问题,求解。varcmddata: array[0..256] of Chari:integerbeginfor i : 0 to 7 dobegincmd

一个简单的转换问题,求解。
var
  cmddata: array[0..256] of Char;
i:integer;

begin
for i := 0 to 7 do
  begin
    cmddata[i] := char($FF);  //FF不是固定的,现将 FFFFFFFFFFFFFFFF 赋值给 cmddata 要怎么写?结果与 cmddata[i] := char($FF); 一样。
  end;
end;
[解决办法]
关键你的ABCDEF0111111111,1111111111111111这些玩意在代码里怎么表达?
function fillHex(var data; hex : string):Boolean;
var
  fixHex : string;
  i : Integer;
  tmp : string;
  p : PAnsiChar;
begin
  Result := False;
  fixHex := '';
  for i := 1 to Length(hex) do
    if hex[i] in ['0'..'9','A'..'F','a'..'f'] then
       fixhex := fixHex + UpCase(hex[i]);
  if odd(Length(fixHex)) then
    Exit;
  p := PAnsiChar(@data);
  for i := 0 to (Length(fixHex) div 2 - 1) do
  begin
     tmp := Copy(fixHex, 1 + i*2 , 2);
     p^ := AnsiChar(StrToInt('$'+tmp));
     Inc(p);
  end;
  Result := True;
end;

procedure TForm2.BitBtn1Click(Sender: TObject);
var
  cmddata: array[0..256] of ansiChar;
begin
  FillChar(cmddata, SizeOf(cmddata), 0);
  fillHex(cmddata, 'ABCDEF0111111111,1111111111111111');
  caption := cmddata;
end;

热点排行