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 22-02-2008
byfali byfali is offline
Miembro
 
Registrado: mar 2007
Posts: 24
Poder: 0
byfali Va por buen camino
Contar numeros repetidos en un ListBox

Hola que tal, tengo un problema que no puedo resolver.
Tengo un ListBox con una serie de numeros entre los cuales hay numeros repetidos. No soy capaz de hacer un codigo que me separes los numeros repetidos y la cantidad de repeticiones de dichos numeros.

Ejemplo: Tengo 1,2,58,2,3,1,8,1
El codigo que busco me deberia de indicar los siguiente:

Del numero 1 hay 3 repeticiones.
Del numero 2 hay 2 repeticiones.

Espero que me podais ayudar. Gracias.
Responder Con Cita
  #2  
Antiguo 22-02-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Hola!

Y que llevas avanzado hasta el momento? En que parte del código tienes problemas?

O deseas que te demos el código completo para resolver tu problema?



Saludos...
Responder Con Cita
  #3  
Antiguo 22-02-2008
byfali byfali is offline
Miembro
 
Registrado: mar 2007
Posts: 24
Poder: 0
byfali Va por buen camino
Estoy clavado. No se me ocurre como puedo hacerlo.
Puedo recorrer el ListBox Item po Item pero no se me ocurre como separar los numeros repetidos.
Responder Con Cita
  #4  
Antiguo 22-02-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Hola...

Tienes varias opciones... usar un arreglo, o un TList... o hasta un TStringList:

O puedes copiar la lista a otra nueva y ordenarla y luego contar mientras no cambie el número:

Código Delphi [-]
var
  TempList: TStringList;
  OutPutList: TStringList;
  CurrentNumber: string;
  CurrentNumberCount: Integer;
  I: Integer;

begin
  TempList := TStringList.Create;
  // Copiamos la lista del TListBox a una temporal
  TempList.Assign(ListBox1.Items);
  // Ordenamos la lista para hacer más fácil el conteo
  TempList.Sort;  
  OutPutList := TStringList.Create;
  // Inicializamos la variable para obtener el primer número
  CurrentNumber := '';
  for I := 0 to Pred(TempList.Count) do
  begin
    // Si hay cambio de número, guardamos el total de ocurrencias y seguimos con el otro numero
    if CurrentNumber <> TempList[i] then
    begin
      if CurrentNumber <> '' then
        OutPutList.Add(Format('Del número %s hay %d repeticiones', [CurrentNumber, CurrentNumberCount]);
      CurrentNumber := TempList[i];
      CurrentNumberCount := 1
    end
    else
      Inc(CurrentNumberCount)
  end
end;

Este código lo hice al aire y no está probado, por lo que podría tener errores; pero te podría dar una idea de como hacerlo...



Saludos...
Responder Con Cita
  #5  
Antiguo 23-02-2008
byfali byfali is offline
Miembro
 
Registrado: mar 2007
Posts: 24
Poder: 0
byfali Va por buen camino
Gracias maeyanes tu codigo es lo que yo necesitaba funciona bien. Lo adaptare a mis necesidades.
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
agregar y/o eliminar items de un listbox a partir de otro listbox Goyo PHP 2 27-09-2007 16:46:30
Registros repetidos enecumene PHP 9 01-02-2007 18:17:04
Recorrer Tabla, contar registro repetidos y escribir totales en otra Tabla Lucas_diaz1810 Conexión con bases de datos 1 25-12-2006 13:04:34
listbox con item repetidos DM2005 Varios 9 07-07-2006 16:18:02
campos repetidos kryna Conexión con bases de datos 12 14-04-2005 17:35:18


La franja horaria es GMT +2. Ahora son las 23:32:37.


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