Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-07-2012
Avatar de adebonis
adebonis adebonis is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 145
Poder: 21
adebonis Va por buen camino
Buscar una cadena en un Stream

Hola a todos.

El caso es que tengo que buscar una cadena dentro de un MemoryStream. El memoryStream lo cargo con un archivo pdf y debo buscar una cadena específica y conocer la posición dentro del stream. Posteriormente debo extraer a partir de esa posición una cadena más larga que la de búsqueda.

La cadena a buscar es de 8 posicions ('20120606') y una vez encontrada debo extraer 20 caracteres desde la posición de inicio de la cadena encontrada.

Utilizo el siguiente código, pero no funciona:

Código Delphi [-]
procedure LocalizaCadena;
var
  NomFichero, Texto: String;
  Stream: TMemoryStream;
  i, n, Long: Integer;
  Val: PByte;
begin

  dm.OpenDialogo.InitialDir := 'd:\Vistas';
  dm.OpenDialogo.Filter := 'Adobe Acrobat (*.pdf)|*.pdf';
  if dm.OpenDialogo.Execute then
    NomFichero := dm.OpenDialogo.Filename
  else begin
    Exit;
  end;

  Texto := '20120606';
  Val := PBYTE(PCHAR(Texto));
  Long := Length(Texto);

  Stream := TMemoryStream.Create;
  Stream.LoadFromFile(nomFichero);
  try
  for n:= 0 to Stream.Size- 1 do begin
    if PBYTE((cardinal(Stream.Memory) + n))^ = Val^ then begin
      for i:= 1 to Long do
        if PBYTE(cardinal(Stream.Memory)+n+i)^ <> PBYTE(cardinal(Val)+i)^ then break;
      if i = Long then
        mensaje(cadena encontrada');
    end;
  end;
  finally
  Stream.Free;
  end;
end;

Gracias a todos.

Adolfo Bonis
Barcelona
Responder Con Cita
 



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
Funcion para buscar cadena dentro de otra cadena y el numero de veces flystar Varios 3 02-07-2007 22:48:08
Buscar un palabra dentro de una cadena eyscom Varios 6 29-07-2006 00:05:05
Buscar número en cadena torito Varios 4 19-04-2004 19:05:25
buscar dato de una cadena noe SQL 5 10-02-2004 18:58:20
Buscar cadena dentro de otra cadena doverzhoff Varios 4 27-01-2004 05:27:15


La franja horaria es GMT +2. Ahora son las 04:32:14.


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
Copyright 1996-2007 Club Delphi