FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Generar números sin repetidos ni consecutivos
Hola, tengo un código para generar números formados por dos dígitos, (añado cero en los menore de nueve). Funciona bien con números pequeños pero falla en números más altos.
Los números generados deben ser no consecutivos y no estar repetidos. A ver si podéis echarme una mano. Saludos
|
#2
|
||||
|
||||
O sea, parece que quieres generar 48 números (sin repetir) del 1 al 99, ¿es eso?
Edito: No, no es eso, pues tienes puesto random(24) y en el bucle length 48 Explica qué quieres, porque no se entiende.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
||||
|
||||
Gracias por tu respuesta
Es que los números son alfanuméricos o dígitos, osea Strings. Y deben ocupar dos caracteres cada uno. Por tanto de 1 a 9 hay que ponerles un cero de prefijo.
Y como son 24 números o pares, ocupan 48 caracteres. Deben estar entre el 1 y el 24. De todos modos he conseguido solucionarlo usando un TStringList y su propiedad IndexOf . El objeto final es crear un conjunto de 24 números no consecuivos y sin repetir ninguno pero del 1 al 24 sólamente. Mira que me ha costado, ¿eh?. Tengo un string de 24 números al final. Ahora tengo que usarlos de dos en dos para convertirlos en Integer. Bueno, saludos y gracias. |
#4
|
||||
|
||||
O sea, del 1 al 24, desordenados.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#5
|
||||
|
||||
Así es, un Array de 1..24 desordenados
Intento hacerlo con un Array pero no lo consigo. Usando un TStringList sí que lo hago uso IndexOf para comprobar que el número X no está.
|
#6
|
||||
|
||||
Sólo como optimización (un poco rebuscada) si utilizas un TStringList, puedes conseguir los 24 números sólo en 24 pasadas (no más), si vas eliminando del TStringList los elementos ya generados y modificando el:
por
__________________
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. |
#7
|
||||
|
||||
Ya lo tengo. Uso un TStringList1.IndexOf prop.
procedure TForm1.Button1Click(Sender: TObject); Cuando alguien encuentre un camino más fácil se agradecerá saberlo. El mió es más bien alambicado. Saludos Última edición por bulc fecha: 09-05-2022 a las 17:08:31. |
#8
|
||||
|
||||
Para hacerlo gráficamente, pon un listbox con los valores 01, 02, 03 ... 23, 24 y otro listbox vacío.
Un botón y listo:
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal Última edición por Casimiro Notevi fecha: 09-05-2022 a las 18:01:17. |
#9
|
||||
|
||||
No esta nada mal.
Para proceder con un Delete es mejor usar el DownTo ya que puede afectar a las posiciones de los índices. Algo que aprendí dándome de bruces con algún caso. Por lo demás muy sencillo y bien.
Gracias y saludos. |
#10
|
||||
|
||||
Hola, lo he probado
Funciona correctamente, pero a veces deja Items en blanco. Por eso he añadido ésto al final.
for I := 0 to LBoxTArget.Count - 1 do if LBoxTarget.Items[i] ='' then LBoxTarget.Items.Delete(I) ; Saludos; bulc Última edición por bulc fecha: 09-05-2022 a las 18:39:59. |
#11
|
||||
|
||||
No hace al caso. Bórralo.
|
#12
|
||||
|
||||
A mí me funciona bien, aunque no he comprobado si son continuos o no.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#13
|
||||
|
||||
Hola bulc, que bien que ya lo hayas solucionado.
Te comparto otra posible solución. La idea es interactuar con el memo lo menos posible para que sea mas eficiente.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com |
#14
|
||||
|
||||
Hola. Gracias
Definitivamente me quedo con el TStringList y un Array dinámico. Le echaré un vistazo más adelante y lo probaré. Nunca había usado un List.
Saludos. bulc |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Generar números de serie consecutivos para productos | ronalg | Varios | 7 | 01-06-2016 23:45:46 |
Actualizar 500 campos con numeros consecutivos | Camilo | SQL | 2 | 19-09-2007 22:06:07 |
no me actualiza numeros consecutivos | Camilo | SQL | 3 | 03-09-2007 14:25:56 |
Numeros de Recibo Consecutivos | Camilo | Conexión con bases de datos | 6 | 03-08-2007 10:46:01 |
Bloques De Numeros Consecutivos | dany2006 | C++ Builder | 5 | 15-11-2006 22:06:16 |
|