Недавно нужно было в коде искать массив байт, определить граници и работать с ними. Начал изобретать велосипед, а потом наткнулся на такую функу: (может кому приготится. автор Slayer616)
юзается так:
например чтобы найти и работать с массивом байт функции ищите её так. удачного кодинга!
Код:
function FindByteArrayinByteArray(mFirstArr:TByteArray;mSecondArr:array of Byte;dwLen:Integer; sStartPos:integer):Integer;
var
i,d, tmp, count:integer;
begin
Result := 0;
for i := sStartPos to Length(mFirstArr) do begin
if mFirstArr[i] = mSecondArr[0] then begin
count := 1;
for d := 1 to dwLen do begin
tmp := i + d;
if mFirstArr[tmp] <> mSecondArr[d] then begin
break;
end else begin
count := count + 1;
if count = dwLen then begin
Result := i;
Exit;
end;
end;
end;
end;
end;
end;
юзается так:
Код:
iStartpos := FindByteArrayinByteArray(arrFile,arrMarker,dwProcS ize,iStartpos);
iEndPos := FindByteArrayinByteArray(arrFile,arrEndMarker,dwEn dSize,iStartPos);
if (iStartPos = 0) or (iEndPos = 0) then break;
например чтобы найти и работать с массивом байт функции ищите её так. удачного кодинга!