Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #9  
Antiguo 21-12-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Una primera aproximacion sería algo como esto:

Código Delphi [-]
function Buscar(Archivo: String; Sub: Pointer; Count: int64): int64;
var
  P: PByte;
  i: int64;
begin
  Result:= -1;
  with TMemoryStream.Create do
  try
    LoadFromFile(Archivo);
    if Size < Count then
      Exit;
    i:= 0;
    P:= Memory;
    while (not CompareMem(Sub,P,Count)) and (i < Size) do
    begin
      inc(P);
      inc(i);
    end;
    if i < Size then
      Result:= i;
  finally
    Free;
  end;
end;

// Por ejemplo
var
  Buffer: Array[1..6]of Byte;
begin
  Buffer[1]:= $00; Buffer[2]:= $F5; Buffer[3]:= $02;
  Buffer[4]:= $40; Buffer[5]:= $00;
  ShowMessage(IntToHex(Buscar('d:\1.dat',@Buffer,5),8));
end;

La función buscar, nos devuelve la posición de la cadena que buscamos, o -1 si no la encuentra. La única desventaja es que cargamos todo el archivo en memoria y si el archivo es muy grande (un par de decenas de megas) puede resultar un problema.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Comparar dos cadenas de texto creus Varios 5 06-03-2009 00:22:13
Obtener un fichero adjunto a un nodo de un fichero XML muntasil Internet 0 18-07-2006 12:57:57
Uso de cadenas zvf OOP 4 05-04-2006 00:55:47
Comparar caracteres tecleados con los de una cadena Calculador Varios 1 16-01-2005 18:36:35
if ... in [] con cadenas???? neon Varios 3 10-12-2004 13:15:39


La franja horaria es GMT +2. Ahora son las 15:25:16.


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