我有变量:
data: TIdBytes;
它包含一些数据。
如何读取“数据”的第一个字节,并从“数据”中删除第一个字节?
是的,我会一次又一次地这样做。直到“数据”为空。
我将使用复制的字节“IF”
if $0F = Copiedbyte then
do_somthing;
也许删除不是那么必要,我只能复制下一个字节..
我不需要循环,我只需要复制一个字节就可以用它做一些事情,例如保存以供以后使用。
答案 0 :(得分:4)
您不需要删除任何内容,这样做似乎很浪费。它会使你的代码变得更加混乱并花费CPU时间。
迭代字节数组:
var
b: byte;
....
for b in data do
dosomething(b);
如果您不想在循环中执行此操作,请跟踪要处理的下一个字节的索引。每次处理一个字节时,都要递增索引。
function GetNext(
const data: TIdBytes;
var Index: Integer;
var b: Byte
): Boolean;
begin
Result := Index<=high(data);
if Result then
begin
b := data[Index];
inc(Index);
end;
end;
将索引变量初始化为0并继续调用此函数,一次提取一个字节,直到返回False。
答案 1 :(得分:1)
正如你所说,没有必要删除,只需循环遍历数组中的每个字节:
for i := Low(Data) to High(Data) do
begin
if data[i] = CopiedByte then
Do_Somthing;
end
答案 2 :(得分:0)
如何将其转换为字节数组,然后删除第一个索引并将其余索引合并在一起?