FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
#1
|
||||
|
||||
Hola, el código ya no da error, pero sigue sin encontrar coincidencias habiendolas (en concreto con el sorteo del dia L-14-01-13). No hay forma de hacerlo funcionar joer.
Saludos. Edito: He hecho una prueba, he creado una etiqueta y en ella almaceno el valor de cad1 así.. Código:
label21.caption:= IntToStr(cad1)
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes. Última edición por danielmj fecha: 14-04-2018 a las 04:10:01. |
#2
|
||||
|
||||
En vez de mostrar codigo debes mostrar datos.
Pon en una tabla y/o lista los datos iniciales, y otra como deben quedar.
__________________
El malabarista. |
#3
|
||||
|
||||
Muestra en tiempo real. Video
Hola Mamcx, no he entendido bien lo que dices. Te explico el proceso a groso modo.. en un listview (lista3) cargo los sorteos hasta la fecha (7 columnas, la primera que sería el caption muestra la fecha del sorteo y se desprecia. El resto muestra la combinacion). En un listbox (per) tengo la permutacion de 5 numeros aleatorios (a partir de los 6 que mas se repiten en un listview (lista) y a partir de ahí debe encontrar 5 coincidencias entre las permutaciones del listbox (per) y cinco de los seis números de la lista3. Pero no encuentra nada y ya he probado varias formas. Un saludo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes. |
#4
|
||||
|
||||
Algo que no entiendo es.. en cad1 que hace mencion a la lista3, se guardan 5 o 6 subitems? por que yo solo quiero comparar 5 igual por eso no encuentra nada. Saludos.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes. |
#5
|
||||
|
||||
Hola, hee creado una imagen general a ver si asi me explico mejor. Saludos.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes. |
#6
|
|||
|
|||
Hola,
este ejemplo esta completo y funcional, contiene dos listas con combinaciones:
|
#7
|
||||
|
||||
Cita:
Me huele que el problema es facil pero esta oscurecido por el codigo que tienes y que no esta simplificado a un minimo para poder entenderlo. Reduce el problema, pon una lista de unas 10 o 20 filas con ejemplos representativos. Luego un ejemplo concreto que COINCIDA con los datos de ejemplo de como es la cosa.
__________________
El malabarista. |
#8
|
||||
|
||||
Hola bucanero,
He estado mirando tu código e implementandolo para mi caso, en compilación no da error, pero como las barras de progreso no se mueven ni un par de etiquetas que muestran el recorrido de lista3 y el listbox per, no sé si realmente funciona o no. El código resumido seria este:
Y aquí puedes ver el programa en funcionamiento... Como puedes ver ni las barras de progreso se mueven ni las etiquetas F y P muestran los valores de i y j que serían los elementos seleccionados de lista3 y per. Un saludo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes. |
#9
|
|||
|
|||
Hola danielmj
En tu código en cuanto a la parte estrictamente de programación hay algunos errores: - Asignas el valor MAX a los progressBar dentro de los bucles, eso hace que esta operación se realice en cada ciclo del propio bucle sin necesidad. Esta inicialización hay que hacerla al principio fuera del bucle y solo una vez. Y dentro del bucle solo actualizar el campo Position del progressBar Cita:
-La variable list:TStringList la declaras en la sección private del form y luego a nivel local dentro del var del procedure TForm1.Button10Click, por lo que al llamarlo desde dentro del procedure, vas a usar la variable local ademas parece que no esta inicializada, por lo que obtendrás un error de access violation - En esta parte del código, primero muestras el contenido de una variable que aun no has asignado, y mas adelante es cuando le asignas el valor. Cita:
-En el procedure CompararCombinaciones has eliminado toda la parte correspondiente a la búsqueda de los números que coinciden cuando las dos combinaciones no son exactamente iguales (variable res) Cita:
- El procedure combinatoria2(v: array of Integer; Serie: TStrings); no tengo claro lo que quieres hacer con el, lo único que hace es cambiar el orden en que se obtiene los elementos de esa determinada combinación en particular, pero en realidad siempre obtienes la misma combinación en distinto orden de sus elementos. Y si lo que buscas es un sistema tipo LOTO, el orden de los elementos no influye. Aquí tienes los datos que muestras en tu vídeo, correspondientes todos ellos a la misma combinación: Código:
1 4 5 12 24 1 4 5 24 12 1 4 12 5 24 1 4 12 24 5 1 4 24 5 12 1 4 24 12 5 te ha servido y es lo que estas intentando implementar, entonces intenta entender su funcionamiento, y en base a ese ejemplo haz tus propias modificaciones. Si no es eso exactamente lo que necesitas, entonces como te comento Mamcx el problema es que no esta muy claro lo que pretendes obtener Un saludo |
#10
|
||||
|
||||
Hola, a ver me explico otra vez espero que esta vez mejor. Comenzaré por explicar el funcionamiento del programa, lo que espero que haga.
1º En el combo box, tengo una serie de valores que van de 5000 a 10.000.000 (aunque realmente como máximo uso 2.000.000). 2º En función de este valor, el programa genera x numero de combinaciones aleatorias y las almacena en un listview. 3º De entre todas esas combinaciones generadas, que pueden ser 5000 o 5 millones, busca los 6 números que mas veces han salido y calcula sus permutaciones (de ahí que combinatoria ordene esos 6 números). En 2 listbox genera las permutaciones de 6 y 5 numeros respectivamente 4º Las permutaciones almacenadas en per, que son de 5 números, las compara con lista3. 5º En otro listview (lista3), carga un archivo csv con sorteos ya jugados y a partir de las permutaciones del listbox "per" va comparando 1 a 1 con cada fila de ese listview 6º El programa tiene 3 métodos de busqueda: fuerza bruta, busqueda del 5 y selectiva por sorteos ya jugados. 6.1. El metodo "fuerza bruta" compara cada permutacion en base a 6 números con cada una las filas del listview que muestra las combinaciones aleatorias, es decir busca cada permutacion entre 5 mil.... 5mill de combinaciones, comparando. Si encuentra los 6 números de la permutacion me lanza un messagebox y me indica en que fila del listview aparece. Este método es muy tedioso y lento por que encontrar 6 numeros exactos es casi imposible por lo que realmente apenas lo uso. 6.2 Método "búsqueda del 5" básicamente hace lo mismo que el método anterior pero en lugar de 6 números con sus coincidencias, busca 5 con lo que las posibilidades de encontrarlos es mayor. 6.3 Método de "busqueda selectiva", realmente este método no tiene mayor importancia por que al igual que el método anterior, busca 5 coincidencias sobre los sorteos ya jugados. Tanto este método como busqueda del 5, usan las permtuaciones del listbox "per" de 5 números. De encontrarlos, tanto para el punto 6.3 y 6.2 me indica donde se encuentra esas coincidencias en los listview (lista [combinaciones aleatorias] o lista3 [combinaciones de sorteos previos]). Ahora la teoría, mi teoría que obviamente no tiene que ser válida pero es la que quiero explotar: Si el método de búsqueda del 5 encuentra 5 coincidencias en alguna de las filas entre el millon de combinaciones aleatorias, la aceptaría como válida estadisticamente y es la que jugaría. Esto es válido para "Búsqueda selectiva", que es a la que pertenece todo el código aquí expuesto. Para la busqueda del 5 es lo mismo salvando las diferencias en cuanto a nombre de controles y variables. En cuanto a lo que dices bucanero, es cierto lo del progress bar y lo de la variable, paso a corregirlo. En cuanto a combinatoria, más arriba expliqué su función. Sobre la parte del código que no muestro. Esa parte la he modificado para que simplemente muestre un mensaje diciendo que no encontró esas 5 coincidencias búscadas. Sino son 5, el programa las ignora. Saludos.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
sumando valores de un listview | danielmj | Varios | 28 | 14-11-2014 21:52:30 |
VALORES FANTASMAS FIREBIRD 2.1 valores Grandes | ASAPLTDA | Firebird e Interbase | 17 | 02-12-2012 12:09:02 |
Rellenar con 0.... | buitrago | Varios | 6 | 17-11-2011 20:02:53 |
¿Cómo insertar una imágen en un lisbox o un memo? | Acuarius3000 | Gráficos | 3 | 27-06-2005 08:44:53 |
arastrar archivos a un lisbox | gulder | C++ Builder | 3 | 05-05-2005 13:31:50 |
|