如何申明一个大小不定的数组(39分)

  • 主题发起人 主题发起人 600019629
  • 开始时间 开始时间
6

600019629

Unregistered / Unconfirmed
GUEST, unregistred user!
如何申明一个大小不定的数组,并将‘D2 BB FA D5 CA BA C5 31 30 00 00 12 00 00 00 ’这个字符串中的每个数值以16进制的形式赋值给数组,这个字符串的长度不确定
 
var
Buffer: Array of string;
begin
SetLength(Buffer, 1);
Buffer[0]:= 'D2';
end;
 
将‘D2 BB FA D5 CA BA C5 31 30 00 00 12 00 00 00 ’这个字符串中的每个数值以16进制的形式赋值给数,请问这第二步如何写
 
试试如strtoint('$'+'D2'),再把其赋给字节量。
 
用 StringList 更方便:
var
list: TStringList;
i, n: Integer;
Buffer: string;
begin
Buffer := 'D2 BB FA D5 CA BA C5 31 30 00 00 12 00 00 00';
list := TStringList.Create;
ExtractStrings([' '], [], PChar(Buffer), list)
// 分割
for i := 0 to list.Count - 1 do
begin
n := StrToIntDef('$' + list, 0)
// 赋给整数
ShowMessage(IntToStr(n));
end;
list.Free;
end;

 
var
Buffer: Array of string;
begin
SetLength(Buffer, 1);
Buffer[0]:= 'D2';
end

在这段里如果Buffer: Array of string是Buffer: Array of byte类型该如何定义SetLength(Buffer, 1);的长度呢?
 
为何不定义成array of Byte或array of Char呢?
然后用CopyMemory复制呢?
 
var
list: TStringList;
i, n: Integer;
Buffer: string;
begin
Buffer := 'D2 BB FA D5 CA BA C5 31 30 00 00 12 00 00 00';
list := TStringList.Create;
ExtractStrings([' '], [], PChar(Buffer), list)
// 分割
for i := 0 to list.Count - 1 do
begin
n := StrToIntDef('$' + list, 0)
// 赋给整数
ShowMessage(IntToStr(n));
end;
list.Free;
end;
 
接受答案了.
 
后退
顶部