[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