|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Membre régulier
![]() Inscription : mai 2003 Messages : 141 ![]() |
J'utilise Delphi 7 personnel donc pas de base de donnée.
J'ai créé un fichier séquentiel. Citation:
Ça ce complique lorsque je veux voir ces enregistrement: Avec un TListview, c'est possible lorsqu'il y a quelques centaines ou milliers d'enregistrement mais plus ça augmente, plus c'est lent jusqu'à planter mon application. Y a t'il un moyen, sans recourir à une base de donnée, de pouvoir voir un fichier séquentiel de grande envergure sans trop de perte de temps. Notez que le fichier peut contenir plusieurs millions d'enregistrement. |
|
|
|
00
|
|
|
#2 | ||||
|
Membre Expert
![]() Inscription : septembre 2009 Messages : 980 ![]() |
coucou déjà oublis le File Of TLoto.
Un manque de performance, c'est un programme mal pensé, mal établis. Que penserai tu d'un truc base sur TFileStream, avec que des entiers voici un exemple, heu ... complet en fait Loto.pas Code :
LotoDemo.pas/projet Code :
__________________
[ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ] Ma messagerie n'est pas la succursale du forum... merci! |
||||
|
|
00
|
|
|
#3 | ||
|
Membre régulier
![]() Inscription : mai 2003 Messages : 141 ![]() |
Je vais essayer de comprendre la solution de dr. Who. Je crois que je me suis mal expliqué: Mon but n'est pas de générer des numéros de loto aléatoires. "LOTO" a créé cet équivoque mais seulement de trouver toutes les possibilités de combinaisons possible pour cette loterie: 6 numéros de 1 à 49 : plus petite combinaison possible : 1-2-3-4-5-6. Plus grande combinaison: 44-45-46-47-48-49.
Code :
Merci. |
||
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() ![]() Paul TOTHFreelance Inscription : novembre 2002 Messages : 4 427 ![]() |
bonjour,
première remarque, le AssignFile devrait être en tout début de code et non dans la boucle, ensuite il suffit de faire un write et le close tout à la fin en dehors des boucles. ensuite pour l'affichage il faut passer par une liste virtuelle. Par exemple TListBox en style lbVirtualOwnerDraw. Il suffit alors de définir la valeur de "ListBox.Count" pour "remplir" la liste; OnDrawItem est appelé pour chaque ligne à afficher. Il suffit alors de récupérer l'enregistrement numéro "Index" pour l'afficher dans le Canvas de la listbox. NB: il existe aussi un VirtualTreeView mais pas en standard sous Delphi. Pour éviter l'accès fichier il serait plus efficace de passer par un filemapping afin d'accéder directement aux données du fichier en laissant l'OS le charger en mémoire.
__________________
Developpez.com: Mes articles, forum FlashPascal Entreprise: Execute SARL Produits : UPnP, RemoteOffice, FlashPascal Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5% |
|
00
|
|
|
#5 |
|
Membre régulier
![]() Inscription : mai 2003 Messages : 141 ![]() |
Un gros merci à vous deux; je débroussaille tout cela. Je marque résolu. Bonne année à tous.
|
|
|
00
|
|
|
#6 |
|
Membre émérite
![]() Inscription : janvier 2006 Messages : 1 396 ![]() |
Bonjour à toutes et à tous et meilleurs voeux pour 2013.
@ Dr.Who, Quand on sait que la règle pour le Lotto est de choisir 6 numéros de 1 à 45 et pour l'Euro Millions la règle est de choisir 5 numéros de 1 à 50 et 2 étoiles de 1 à 11. Ta suggestion qui affiche 6 chiffres + 1, peut elle être ajustée en conséquence ? Merci d'avance, @+, Cincap |
|
|
00
|
|
|
#7 | ||
|
Membre Expert
![]() Inscription : septembre 2009 Messages : 980 ![]() |
@cincap :
oui il suffit de modifier en conséquence : Code :
__________________
[ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ] Ma messagerie n'est pas la succursale du forum... merci! |
||
|
|
00
|
|
|
#8 | ||
|
Membre émérite
![]() Inscription : janvier 2006 Messages : 1 396 ![]() |
Bonjour à toutes et à tous,
@ Dr.Who, merci pour la rapidité de ta réponse, après avoir créer la new unité "Loto", à la compilation j(obtiens ces erreurs : Code :
Je suis sous D6 et Seven 64bits. @+, Cincap |
||
|
|
00
|
|
|
#9 |
![]() ![]() Yves LemaireBiologiste ; Progr(amateur) Inscription : mars 2005 Messages : 1 684 ![]() |
Pour le 1), il doit suffire d'ajouter les parenthèses autour de chaque test < et >
__________________
Delphi 5 Pro et Code Typhon 2.80 sous Win 7 64 bits - Code Typhon 2.70 / Ubuntu 12.04 64 bits |
|
|
00
|
|
|
#10 | |||||
|
Membre émérite
![]() Inscription : janvier 2006 Messages : 1 396 ![]() |
@ tourlourou, merci de ta réponse, après correction j'obtiens plus qu'une seule erreur au niveau de la ligne 74 :
Citation:
Code :
Code :
Cincap |
|||||
|
|
00
|
|
|
#11 | ||
![]() ![]() Yves LemaireBiologiste ; Progr(amateur) Inscription : mars 2005 Messages : 1 684 ![]() |
Code :
__________________
Delphi 5 Pro et Code Typhon 2.80 sous Win 7 64 bits - Code Typhon 2.70 / Ubuntu 12.04 64 bits |
||
|
|
00
|
|
|
#12 | ||
|
Membre émérite
![]() Inscription : janvier 2006 Messages : 1 396 ![]() |
@ tourlourou, mais bien entendu, je n'ai pas controlé cette ligne, merci.
Il fallait aussi dans l'utilisation de "LotoCreate" rajouter ceci : Code :
1er résultat au 13, puis au 24 et 29 sur les 100 ! @+, Cincap |
||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com