Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Localizar un array de bytes en un fichero binario. (https://www.clubdelphi.com/foros/showthread.php?t=53118)

maro 11-02-2008 17:43:00

Localizar un array de bytes en un fichero binario.
 
Hola,

Pude ser que lo que intento hacer sea un poco abstracto (o no, ¿no?).

Me gustaría saber como puedo localizar un array de bytes, dentro de un fichero binario.

Me explico:
Lo que quiero es abrir un fichero en binario y cargar un buffer (entiendo que es un array de bytes) y localizar su posición en un segundo fichero, también abierto en modo binario.

¿Es posible hacer esto?


Muchas gracias por su tiempo.
Un Saludo!

Maro.

ixMike 11-02-2008 18:14:36

Supongamos que ya está todo cargado y tal:

Código Delphi [-]
var
  Buffer: array of byte; //Donde buscas
  Cadena: array of byte; //Lo que buscas
  BufSize: integer; //cantidad de bytes de Buffer
  CadSize: integer; //cantidad de bytes de lo que buscas
  n, p: integer; // ¡Benditos contadores!
  Correcto: Boolean;
begin
//
//Aquí cargarás los datos de donde sea
//
for n:=0 to BufSize - CadSize do
  begin
  Correcto:=False;
  If Buffer[n]=Cadena[0] then
    for p:=0 to CadSize-1 do
      if Buffer[n+p]=Cadena[p] then Correcto:=True else
        begin
        Correcto:=False;
        Break;
        end;
  If correcto then break;
  end;
If correcto then ShowMessage(Format('Se encontró en la posición %d', [p]));
end;


Así, de memoria, más o menos


Salu2.

maro 12-02-2008 07:08:57

Perfecto. Lo probaré.


Muchas gracias ixMike.

maro 12-02-2008 11:58:12

Hola de nuevo.

Lo he probado y es justo lo que necesitaba.
Muchas gracias de nuevo ixMike.

Un Saludo!.

Maro.


La franja horaria es GMT +2. Ahora son las 16:30:18.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi