• XSS.stack #1 – первый литературный журнал от юзеров форума

[Модуль] Найти массив байт в массиве байт

demien

(L2) cache
Пользователь
Регистрация
29.09.2008
Сообщения
492
Реакции
14
Недавно нужно было в коде искать массив байт, определить граници и работать с ними. Начал изобретать велосипед, а потом наткнулся на такую функу: (может кому приготится. автор 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;

например чтобы найти и работать с массивом байт функции ищите её так. удачного кодинга!:)
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх