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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-09-2014
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Tal vez las expresiones regulares solventen tu problema.
Dos excelentes artículos de cómo funcionan puedes encontrarlos aquí. Échales un vistazo y haz alguna prueba a ver si solventan en problema que planteas.

Expresiones regulares, Novedad en XE. Parte1 y Parte2.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #2  
Antiguo 12-09-2014
Avatar de n3mohack
n3mohack n3mohack is offline
Miembro
 
Registrado: may 2004
Ubicación: Chile-Stgo-Huechuraba
Posts: 41
Poder: 0
n3mohack Va por buen camino
Talking

Cita:
Empezado por Neftali Ver Mensaje
Tal vez las expresiones regulares solventen tu problema.
Dos excelentes artículos de cómo funcionan puedes encontrarlos aquí. Échales un vistazo y haz alguna prueba a ver si solventan en problema que planteas.

Expresiones regulares, Novedad en XE. Parte1 y Parte2.
Se me fue comentar algo muuuuuy importante... estoy trabajando en Delphi 7.
__________________
Si es Chileno.. es bueno.
Responder Con Cita
  #3  
Antiguo 13-09-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
n3mohack,

Cita:
Empezado por n3mohack
...Necesito implementar una función de búsqueda de un patrón de texto en otro texto...Patrón definido por el usuario: 99/99/9999...estoy trabajando en Delphi 7...


Cita:
Empezado por Neftali
...Tal vez las expresiones regulares solventen tu problema...


Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, RegExpr;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

// Busca fechas en el formato dd/mm/yyyy por medio de expresiones regulares
procedure TForm1.Button1Click(Sender: TObject);
var
   RE : TRegExpr;
   ArrayDates : Array[0..5] of String;
   i : Integer;
   MsgApp : String;
   MaskDate : String;

begin

   MaskDate := '99/99/9999';

   ArrayDates[0] := '01/07/2014';
   ArrayDates[1] := '01/07/14';
   ArrayDates[2] := '1/7/14';
   ArrayDates[3] := '01/07/2014 es la fecha de prueba';
   ArrayDates[4] := 'La fecha 01/07/2014 es la fecha de prueba';
   ArrayDates[5] := 'La fecha de prueba es 01/07/2014';

   RE := TRegExpr.Create;

   RE.Expression := '[[0-9]{2}/[0-9]{2}/[0-9]{4}';

   for i := Low(ArrayDates) to High(ArrayDates) do
   begin
      if RE.Exec(ArrayDates[i]) then
      begin
         MsgApp := Format('Formato de Fecha %s Encontrado en : %s',[MaskDate,ArrayDates[i]]);
         MessageDlg(MsgApp,mtInformation,[mbOK],0);
      end
      else
      begin
         MsgApp := Format('No encontrado Formato de Fecha %s en : %s',[MaskDate,ArrayDates[i]]);
         MessageDlg(MsgApp,mtInformation,[mbOK],0);
      end;

   end;

   RE.Free;

end;

end.
El código anterior en Delphi 7 bajo Windows 7 Professional x32, permite buscar fechas con el formato 'dd/mm/yyyy' en un string por medio de expresiones regulares, a través de la librería : TRegExpr - Freeware Delphi Regular Expressions Library.

La librería TRegExpr - Freeware Delphi Regular Expressions Library (Español e Ingles) esta disponible en : TRegExpr - Delphi Regular Expressions Library.rar

Nota: Para usar la librería solo se debe incluir la ruta de sus unidades en : Tools->Environment Options->Library->Library path.

Revisa esta información:
Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 13-09-2014 a las 02:34:18.
Responder Con Cita
  #4  
Antiguo 15-09-2014
Avatar de n3mohack
n3mohack n3mohack is offline
Miembro
 
Registrado: may 2004
Ubicación: Chile-Stgo-Huechuraba
Posts: 41
Poder: 0
n3mohack Va por buen camino
Cita:
Empezado por nlsgarcia Ver Mensaje
n3mohack,







Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, RegExpr;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

// Busca fechas en el formato dd/mm/yyyy por medio de expresiones regulares
procedure TForm1.Button1Click(Sender: TObject);
var
   RE : TRegExpr;
   ArrayDates : Array[0..5] of String;
   i : Integer;
   MsgApp : String;
   MaskDate : String;

begin

   MaskDate := '99/99/9999';

   ArrayDates[0] := '01/07/2014';
   ArrayDates[1] := '01/07/14';
   ArrayDates[2] := '1/7/14';
   ArrayDates[3] := '01/07/2014 es la fecha de prueba';
   ArrayDates[4] := 'La fecha 01/07/2014 es la fecha de prueba';
   ArrayDates[5] := 'La fecha de prueba es 01/07/2014';

   RE := TRegExpr.Create;

   RE.Expression := '[[0-9]{2}/[0-9]{2}/[0-9]{4}';

   for i := Low(ArrayDates) to High(ArrayDates) do
   begin
      if RE.Exec(ArrayDates[i]) then
      begin
         MsgApp := Format('Formato de Fecha %s Encontrado en : %s',[MaskDate,ArrayDates[i]]);
         MessageDlg(MsgApp,mtInformation,[mbOK],0);
      end
      else
      begin
         MsgApp := Format('No encontrado Formato de Fecha %s en : %s',[MaskDate,ArrayDates[i]]);
         MessageDlg(MsgApp,mtInformation,[mbOK],0);
      end;

   end;

   RE.Free;

end;

end.
El código anterior en Delphi 7 bajo Windows 7 Professional x32, permite buscar fechas con el formato 'dd/mm/yyyy' en un string por medio de expresiones regulares, a través de la librería : TRegExpr - Freeware Delphi Regular Expressions Library.

La librería TRegExpr - Freeware Delphi Regular Expressions Library (Español e Ingles) esta disponible en : TRegExpr - Delphi Regular Expressions Library.rar

Nota: Para usar la librería solo se debe incluir la ruta de sus unidades en : Tools->Environment Options->Library->Library path.

Revisa esta información:


Espero sea útil

Nelson.
Muchas gracias lo voy a revisar...
__________________
Si es Chileno.. es bueno.
Responder Con Cita
Respuesta



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
Usar TServerSocket y TClientSocket para enviar "streams" más o menos "grandes" dec Internet 9 04-08-2015 16:11:50
El programa se queda "colgado" mientras copia y luego "despierta" NeWsP OOP 5 10-03-2010 22:05:40
Rutas de búsqueda de "include" y "require". Ñuño Martínez PHP 2 11-06-2008 17:29:15
Necesito llamar a métodos de clases "hija" desde su clase "padre" Flecha OOP 17 20-04-2007 00:03:53
Máscara para "%" Tolón Varios 4 30-01-2007 21:00:38


La franja horaria es GMT +2. Ahora son las 20:48:11.


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