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 27-01-2011
Avatar de ZayDun
ZayDun ZayDun is offline
Miembro
 
Registrado: mar 2007
Posts: 129
Poder: 18
ZayDun Va por buen camino
Arrow eliminar cadena en listbox

Hola, estoy trabajando con un listbox el cual carga un fichero de texto y me muestra algo asi...

uno@novale
dos@4w4
tres@%$%

me gustaria saber como puedo recorrer todo el listbox y que me elimine el contenido que muestra apartir de "@" para que muestre tan solo

uno
dos
tres

espero que se haya entendido.. un saludo
Responder Con Cita
  #2  
Antiguo 27-01-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
El ListBox lo recorres con un ciclo for:

Código Delphi [-]
for I := 0 to ListBox1.Items.Count - 1 do
begin
  // aquí accedes a la línea actual con ListBox1.Items[i]
end;

Para cada línea usas la función Pos para encontrar la posición de la arroba y luego la función Copy para extraer la parte de la cadena desde el principio hasta una posición antes de la encontrada.

// Saludos
Responder Con Cita
  #3  
Antiguo 28-01-2011
Avatar de ZayDun
ZayDun ZayDun is offline
Miembro
 
Registrado: mar 2007
Posts: 129
Poder: 18
ZayDun Va por buen camino
gracias roman por tu respuesta, he logrado hacerlo correr, pero el proceso es muy lento al ser un documento de texto de varios Mb.Dejo un ejemplo del codigo que uso actualmente.

Código Delphi [-]
var
i:integer;
linea:integer;
Info:string;
begin
  for linea := 0 to Lista.Items.Count -1 do
  begin
    Info:=Lista.Items[linea];
    i := Pos('@', Info);
    Delete(Info, i, MaxInt);
    Lista.Items[linea] := Info;
  end;
Responder Con Cita
  #4  
Antiguo 31-01-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola ZayDun.

Se podría optimizar el procedimiento haciendo que sólo se asigne el nuevo texto cuando se encuentra la ocurrencia buscada.
Otra cosa que puede aligerar un poco el tiempo es trabajar sobre un TStrings y luego asignar el resultado al TListBox.

Ejemplo:
Código Delphi [-]
...
procedure TForm1.Button1Click(Sender: TObject);
var
  i, p: Integer;
  aux: string;
  TS: TStrings;
begin
  TS:= TStringList.Create;
  try
    TS.LoadFromFile('C:\TU_ARCHIVO.TXT');
    for i:= 0 to TS.Count -1 do
    begin
      p := Pos('@', TS[i]);
      if p > 0 then
      begin
        aux:= TS[i];
        Delete(aux, p, MaxInt);
        TS[i]:= aux;
      end;
    end;
    ListBox1.Items.Assign(TS);
  finally
    TS.Free;
  end;
end;
...


Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 31-01-2011 a las 01:19:33.
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
Eliminar al final de la cadena el <BR> KmoCuesta Varios 1 05-05-2008 19:17:17
agregar y/o eliminar items de un listbox a partir de otro listbox Goyo PHP 2 27-09-2007 16:46:30
Eliminar subcadena de una cadena kuan-yiu Varios 9 09-07-2007 16:50:49
Eliminar Cadena De Caracteres.... ZayDun Internet 3 27-03-2007 21:20:58
eliminar caracteres de una cadena ibbeth Firebird e Interbase 4 23-12-2005 23:35:28


La franja horaria es GMT +2. Ahora son las 07:59:35.


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