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 09-11-2007
Avatar de ZayDun
ZayDun ZayDun is offline
Miembro
 
Registrado: mar 2007
Posts: 129
Poder: 18
ZayDun Va por buen camino
Lightbulb Eliminar palabras de un documento

hola compañeros,tengo un documento de texto con cientos de palabras pero algunas tienen mas de 10 caracteres y me gustaria eliminarlas de la lista pero estoy buscando la forma de como poder eliminar ya que son muchas. GRACIAS!
Responder Con Cita
  #2  
Antiguo 09-11-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Una pregunta. ¿Realmente hablamos de una lista? Es decir, ¿podemos encontrar "elementos" de una lista o encontramos las palabras en un texto separadas por espacios, por ejemplo?

Dicho de otro modo, tenemos esto:

Código:
Hola
Que
Tal
Estas
Contigo
O tenemos algo así:

Código:
Hola Que Tal Estas Contigo
Y otra cosa más, ¿de dónde salen las palabras? ¿Las recoges de un archivo? ¿Las tienes en alguna cadena? ¿Tal vez en otro tipo de variable como pudiera ser "TStrings"?
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 09-11-2007 a las 12:24:43.
Responder Con Cita
  #3  
Antiguo 09-11-2007
Avatar de ZayDun
ZayDun ZayDun is offline
Miembro
 
Registrado: mar 2007
Posts: 129
Poder: 18
ZayDun Va por buen camino
Hola Dec, lo que tenemos es una lista de palabras tipo:

Código:
lista
de
palabras
...
..
Responder Con Cita
  #4  
Antiguo 09-11-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Pero las tendréis en algún sitio, en algún tipo de variable... ¿las cargáis de un archivo? ¿Cómo lo hacéis?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 09-11-2007
Avatar de ZayDun
ZayDun ZayDun is offline
Miembro
 
Registrado: mar 2007
Posts: 129
Poder: 18
ZayDun Va por buen camino
La palabras se encuentra en un txt que se carga en un memo para mostrarlas, despues el programa realiza busqueda en ese memo pero las que tienen mas de 10 caracteres no son validas, asi que quiero eliminarlas para que la busquedad sea mas rapida. Saludos!
Responder Con Cita
  #6  
Antiguo 09-11-2007
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.275
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
Haz un recorrido y las que tengan más de 10 caracteres de longitud las borras. ¿Qué dificultad tiene eso?

Para el recorrido haz un for (Descendente, no ascendente) y para eliminarlas usa el Delete de TStrings (memo.Lines).
__________________
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
  #7  
Antiguo 09-11-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

A bote pronto se me ocurre algo parecido a esto:

Código Delphi [-]
(*
  Carga un archivo existente e itera por sus líneas para
  rechazar aquellas que superen la longitud deseada.

  Si el archivo especificado no existe este procedimiento
  levantará una excepción del tipo "EInOutError"

  Ejemplo de llamada:

  var
    t: TStrings;
  begin
    t := TStringList.Create();
    try
      GetWordsFromFile('palabras.txt', 2, t);
      Memo1.Text := t.Text;
    finally
      t.Free();
    end;
  end;

  Parámetros:

  filePath: Ruta del archivo a cargar

  maxChars: Máximos caracteres para no rechazar una línea

  resultsWords: Variable donde se albergará el resultado,
  es decir, las líneas cargadas del archivo no rechazadas

*)
procedure GetWordsFromFile(filePath: string;
 maxChars: integer; var resultsWords: TStrings);
var
  i: integer;
begin
  if FileExists(filePath) then begin
    resultsWords.LoadFromFile(filePath);
    for i := resultsWords.Count-1 downto 0 do
    begin
      if (Length(resultsWords[i]) > maxChars) then
      begin
        resultsWords.Delete(i);
      end;
    end;
  end
  else begin
    raise EInOutError.CreateFmt(
      'The file "%s" dont exists',
      [filePath]
    );
  end;
end;

No sé si puede servirte o darte al menos una idea.

PD. Básicamente es lo que dice el compañero Neftalí, si bien en este caso no se desechan las palabras del "Memo", sino que no llegan a cargarse en el mismo.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 09-11-2007 a las 12:58:46.
Responder Con Cita
  #8  
Antiguo 09-11-2007
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.275
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
Cita:
Empezado por dec Ver Mensaje
PD. Básicamente es lo que dice el compañero Neftalí, si bien en este caso no se desechan las palabras del "Memo", sino que no llegan a cargarse en el mismo.
Básicamente esta solución es mejor, por que las que no valen ya nos las añades.
Mi solución (que estoy un poco perro hoy y era por no escribir) las descarta luego, por lo que estás haciendo trabajo de más....
__________________
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
  #9  
Antiguo 09-11-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Bueno, no sé. No lo tengo tan claro.

En primer lugar, el procedimiento propuesto lo escribí a bote pronto, y, es muy probable que existan mejores soluciones. Ahora bien, cargar las palabras, hemos de hacerlo, bien directamente en el "Memo", o no, pero, ese paso hay que darlo.

Yo evité cargarlas antes en una variable y luego asignar dicha variable al "Memo" porque tal vez el recorrer y borrar las palabras una vez dentro de este, pudiera "saltar a la vista" del usuario, que están a la que salta, no sé si me explico.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #10  
Antiguo 09-11-2007
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Poder: 21
Mick Va por buen camino
Cita:
Empezado por dec Ver Mensaje
Hola,
Yo evité cargarlas antes en una variable y luego asignar dicha variable al "Memo" porque tal vez el recorrer y borrar las palabras una vez dentro de este, pudiera "saltar a la vista" del usuario, que están a la que salta, no sé si me explico.
Tenemos el metodo BeginUpdate, que evita que salten los eventos de redibujado, modificacion, etc, evitando el problema visual y ademas acelerando muchisimo las modificaciones:

Código Delphi [-]
Memo1.Lines.BeginUpdate;
try
  //
  // Añadir, modificar o borrar lineas del memo.
  //
finally
  Memo1.Lines.EndUpdate;
end;

Saludos
Responder Con Cita
  #11  
Antiguo 09-11-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Sí; gracias Mick. Efectivamente, existe "BeginUpdate", aunque, no probé con él. Pero podría servir, así es.
__________________
David Esperalta
www.decsoftutils.com
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
Anuncios por Palabras gluglu Humor 3 12-05-2006 10:55:31
El Somero de las palabras. marcoszorrilla Humor 1 06-01-2006 21:48:54
busqueda por palabras majosf Conexión con bases de datos 2 19-09-2005 19:44:26
eliminar opcion de eliminar en un dbgrid morfeo21 Varios 3 14-07-2005 17:05:32


La franja horaria es GMT +2. Ahora son las 22:17:39.


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