Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-03-2005
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.941
Poder: 27
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
La clausula LIKE es la solucion basica que todos usan. Te puede funcionar asi que intentalo. Otra opcion es usar SOUNDEX (si lo soporta nativamente tu BD).

Para hacerlo RAPIDO usa una HashTable+SOUNDEX y te deberia resultar bueno el resultado...(sino estoy mal en Delphi la hashtable se llama buckettable?)

Ahora, este tipo de cosas se hacen con un componente de busqueda de texto completa, y TAL VEZ winamp use algun componente de estos. De hecho estoy trabajando en un proyecto para hacer una libreria de estas, pero lastima que esta en ALPHA y todavia no se puede usar .
__________________
El malabarista.
Responder Con Cita
  #2  
Antiguo 10-03-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 26
vtdeleon Va por buen camino
Cita:
Empezado por mamcx
Para hacerlo RAPIDO usa una HashTable+SOUNDEX y te deberia resultar bueno el resultado...(sino estoy mal en Delphi la hashtable se llama buckettable?)
Disculpame Compañero,

Pero no se absolutamente nada de Hastable Soundex y Buckettable!!

Donde puedo buscar mas informacion de ellos, para saber.
Responder Con Cita
  #3  
Antiguo 13-03-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 26
vtdeleon Va por buen camino
??????????????????
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #4  
Antiguo 15-03-2005
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.941
Poder: 27
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Mira en las ayudas sobre

Soundex

TBucketList

La idea es que usas BucketList para almacenar cada palabra y SOundex para hacer comparaciones...

Quiero decir, en vez de algo directo como:


if 'Ejemplo' in ListaString

Es

if Bucket('Ejemplo') in Soundex(ListaString)

PD: Obvio que esa sintaxis me la invente
__________________
El malabarista.
Responder Con Cita
  #5  
Antiguo 15-05-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 26
vtdeleon Va por buen camino
Lightbulb Solucionado

Saludos.

Creo haber encontrado la solucion. Me he empe~ado un poco en eso hasta conseguirlo.
Le mostrare el codigo para que el que le interese y para optimizar el mismo.
Estoy habierto a sugerencias

Este formulario contiene: 1 edit, 1 dbgrid y 1 query

Código Delphi [-]
procedure Tfrmbuscar.FormCreate(Sender: TObject);
   begin
     vbusca.Clear;//Edit
     Codigo:='';//DECLARADA PRIVATE
     cadena:=TStringList.Create;//DECLARADA PRIVATE
       Query1.Close;
       with Query1.SQL do begin
         Clear;
         Add('select Codemp, Nombre, apellidos');//+column );
         Add('from empleados');//+tabla);
       end;
       Query1.Open;
   end;
   
   procedure Tfrmbuscar.vbuscaKeyUp(Sender: TObject; var Key: Word;
     Shift: TShiftState);
   var
     n:integer;
   begin
 if (Length(trim(vbusca.Text))>0) then
     if key in [VkKeyScanA('A')..VkKeyScan('Z'), VkKeyScanA('0')..VkKeyScan('9'),
      VK_BACK, vk_space, vk_delete] then begin
         cadena.CommaText:=vbusca.Text;
       with Query1 do begin
         Close;
         if cadena.Count<>nkey then begin
           condi:=' (rtrim(nombre) ||'' ''|| rtrim(apellidos)) containing :data'+'0';
           for n:= 1 to cadena.Count-1 do begin
             condi:=condi +' and (rtrim(nombre) ||'' ''|| rtrim(apellidos)) containing :data'+inttostr(n);
           end;
           if SQL.Count>2 then
             sql.Delete(2);
           sql.Insert(2,'where '+condi);
         end;
         for n:=0 to ParamCount-1 do begin
           ParamByName('data'+inttostr(n)).AsString:=cadena[n];
         end;
         nkey:=n;
         if not Prepared then
           Prepare;
         Open;
       end; 
     end;{ else key:=  #0;}
   end;

Hasta Luego
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!

Última edición por vtdeleon fecha: 19-05-2005 a las 22:24:05. Razón: Aclarar un poco & corregir
Responder Con Cita
  #6  
Antiguo 26-08-2005
Avatar de sakuragi
sakuragi sakuragi is offline
Miembro
 
Registrado: feb 2004
Ubicación: root
Posts: 1.435
Poder: 24
sakuragi Va por buen camino
vtdeleon

gracias por el aporte

lo estoy checando

nomas unas preguntas. si no es mucha molestia


"cadena" es
Código Delphi [-]
 private
     cadena:TstringList;

las valiables

"nkey"
"condi"
"ParamByNAme" esta no creo que sea variable pero tambien me marca error
"prepare"

todas esas me marcan "undeclared indetifier"


saludos

gracias
__________________
OpenSuse OpenOffice.org icomputo
Responder Con Cita
  #7  
Antiguo 26-08-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 26
vtdeleon Va por buen camino
Cita:
Empezado por sakuragi
las valiables

"nkey"
"condi"
"ParamByNAme" esta no creo que sea variable pero tambien me marca error
"prepare"

todas esas me marcan "undeclared indetifier"
El nkey en una variable Integer
condi es String
ParamByName viene referenciado del Query1
prepare es un metodo del Query1
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 13:19:12.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi