[Lazarus-es] alternativa a TFPExpressionParser

Jesus Reyes A. jesusrmx en gmail.com
Jue Ago 25 19:15:34 CEST 2016


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.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20160825/0b12d84d/attachment.html>


More information about the Lazarus-es mailing list