[Lazarus-es] alternativa a TFPExpressionParser

Martin Gomez mmgomez en gmail.com
Sab Ago 27 21:08:31 CEST 2016


Yo lo haría armando una linea de comando para el utilitario "grep" y
parseando el resultado.

2016-08-25 14:15 GMT-03:00 Jesus Reyes A. <jesusrmx en gmail.com>:

> On Sat, 20 Aug 2016 12:19:50 -0500, Rafael Bidegain <r.bidegain en gmail.com>
> wrote:
>
> hola a todos.
>
> Tengo que hacer una utilidad para hacer búsquedas sobre archivos de texto.
> El problema es que el usuario necesita buscar algunas veces con 1
> condición otras con dos o tres condiciones. y no siempre sobre el mismo
> campo.
>
> La solución con TFPExpressionParser no me desagrada, pero estoy buscando
> eficiencia ya que intuyo que en no mucho tiempo el usuario me va a pedir
> que el proceso se haga automáticamente sobre un grupo de archivos.(ahora
> abre un archivo con un TOpendialog, los parámetros de búsqueda se cargan en
> un TStringGrid)
>
> cada archivo tiene 40.000 registros.
>
> por el momento los conectores lógicos son todos and y lo resuelvo así
>      fparser := TFPExpressionParser.Create(nil);
>      identifier1 := fparser.Identifiers.AddIntegerVariable('x1',0);
>      identifier1 := fparser.Identifiers.AddIntegerVariable('x2',0);
>      fparser.Expression := '';
>      if trim(StringGrid1.Cells[1,1]) <> '' then //ctacte
>      begin
>           fparser.Expression := '(x1=0)';
>      end;
>
>           if length(fparser.Expression) > 0 then
>              fparser.Expression := fparser.Expression + ' and (x2=0)'
>           else
>              fparser.Expression := '(x2=0)';
>
> gracias!
> --
> Rafael Bidegain
>
> Ya que los cuerdos no hablan, hablará el loco.
> (The Fool, Padraic Pearse)
>
> # yo quiero educación libre. ¡YA!
>
>
> No entiendo bien si tu pregunta es con respecto de la manera de crear una
> expresión de una manera mas eficiente o si de un método de hacer la
> búsqueda en si mas eficiente.
>
> Opto por lo segundo, y aunque parece que tus búsquedas son mas
> especializadas, en este enlace hablan al respecto de busquedas de texto
> utilizando el algoritmo Boyer-Moore, fue el primer resultado que encontré
> quizás existan mas. http://forum.lazarus.freepascal.org/index.php/
> topic,23136.0.html
>
> Jesus Reyes A.
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus-ide.org
> http://lists.lazarus-ide.org/listinfo/lazarus-es
>
>


-- 
​
Most good programmers do programming not because they expect to get paid or
get adulation by the public, but because it is fun to program.
​ ​
*Linus Torvalds*
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20160827/726c514c/attachment.html>


More information about the Lazarus-es mailing list