La problématique n'était pas tant de stocker l'information que d'obtenir les diverses combinaisons.
La problématique n'était pas tant de stocker l'information que d'obtenir les diverses combinaisons.
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
bonjour
j'ai une erreur utilisation incorrect mot clé '_'
surement a cette ligne r:=r+Quotedstr('_')+') FROM 1 FOR 2)';
comme j'ai des doute avec les mot cle jour remplacer pa JR heure par HR
bonjour
r:='INSERT INTO COMBINAISONS(JR,HR,B1,B2,B3,B4) SELECT JR,NUMERO,';
j'ai crée une base donnée avec JR,HR,B1,B2,B3,B4
numero sa correspond a quoi ?
merci
re
je vois que tu as fait un exemple peut tu si tu veux m'envoyer le source
merci d'avance
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
bonjour
RIO connait pas mais sa marche avec delphi
par contre le programme sert a générer un SQL ???
salut
une fois la chaîne créé il est assez simple d’extraire les élément voulue
tu recupere la valeurpar un simple substring
l'extraction de donnée se fait simplement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 select MADATE, SUBSTRING(chaine, debut,1),SUBSTRING(chaine, debut+1,1),SUBSTRING(chaine, debut+2,1) from MATABE where SUBSTRING(chaine, debut,1) = 1 and SUBSTRING(chaine, debut+1,1) = 1 and SUBSTRING(chaine, debut+2,1) = 1
Blaise PascalNous souhaitons la vérité et nous trouvons qu'incertitude. [...]
Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
PS : n'oubliez pas le tag
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
bonjour
je récapitule
donc j'ai le gros fichier qui a créer le fichier exemple: combinaison.sql
il faut ensuite lancer ce fichier.sql comment ?
ensuite
je lance comment ce code
désole encore de vous embêter je me débrouille mieux
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 select MADATE, SUBSTRING(chaine, debut,1),SUBSTRING(chaine, debut+1,1),SUBSTRING(chaine, debut+2,1) from MATABE where SUBSTRING(chaine, debut,1) = 1 and SUBSTRING(chaine, debut+1,1) = 1 and SUBSTRING(chaine, debut+2,1) = 1
en mathématique que base donnée
bonjour
Rio donc version delphi 10
quelle nouveauté par rapport xe6 ?
merci
Bonjour,
rien à voir entre la solution d'Anapurna et celle que j'ai proposée.
Une fois le fichier des combinaisons rempli un simple SQL suffira à vous retrouvez les combinaisons les plus sorties (notez que ce sera encore plus simple si au lieu d'utiliser un fichier contenant 4 colonnes pour les 4 boules de la combinaison vous utilisez simplement la combinaison (une simple transformation de l'idée de base en remplaçant une virgule par un ||, ce que j'avais mis en commentaire.
Dans ce cas sur une table ayant cette structure
ce code SQL à mettre dans une TQuery
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CREATE TABLE COMBINAISONS (JOUR DATE, HEURE , COMBI VARCHAR(8) );
vous fournira, dans l'ordre, les tirages les plus sortis
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT COMBI,Count(*) AS N FROM COMBINAISONS GROUP BY COMBI ORDER BY N DESC
Dans le cas où vous préférez rester sur une structure "4 boules" le SQL est un peu plus compliqué mais raisonnable
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT B1||B2||B3||B4 AS COMBI,Count(*) AS N FROM COMBINAISONS /* GROUP BY COMBI ici j''ai un doute donc */ GROUP BY B1||B2||B3||B4 ORDER BY N DESC
trop pour que je puisse les citer entre les améliorations de l'IDE les avancées (pas toujours très heureuses AMHA) dans le langage, les composants, les cibles il y a trop de versions (5 ou 6) d'écartRio donc version delphi 10.3 quelle nouveauté par rapport xe6 ?
Mais, si vous avez XE6 avec les composants Firedac envisagez SQLite comme base de données en lieu et place de DBase
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
bonjour
j'ai encore un probleme
donc j'ai creer le gros fichier SQL
mais quand je le lance j'ai une erreur
vous joint le brouillon du programme
merci pour votre patience
Bonjour,
que vous ayez une erreur est logique puisque vous n'avez pas vraiment suivi mon raisonnement.
Ce que j'ai mis en commentaire dans le source que je vous ai fourni est important.
Votre objectif n'est pas de récupérer un SQL qui de toute façon sera trop gros pour être exploiter par le BDE, le programme tel que je l'ai fourni ne fait que montrer ce que cela donnerait.
Votre objectif est de remplir la table combinaisons.dbf
pour cela il faut prendre en compte les commentaires que j'avais mis
Voilà le code approximatif, non testé car je n'ai pas BDE (obsolète depuis plus de 15 ans) d'installé sur ce poste.
au passage
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103 unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Bde.DBTables, Data.DB, Vcl.StdCtrls, Vcl.Grids, Vcl.DBGrids,math; type TForm1 = class(TForm) Table1: TTable; Button1: TButton; DataSource1: TDataSource; Memo1: TMemo; DBGrid1: TDBGrid; Button2: TButton; Aquery: TQuery; Table2: TTable; DataSource2: TDataSource; DBGrid2: TDBGrid; Button3: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Déclarations privées } public { Déclarations publiques } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); // remplissage de la table des combinaisons var i,j,o : Integer; s,r : String; WQuery : TQuery; function inttobin (p_nb_int: uint64; p_nb_digits: byte=64): string; begin SetLength(Result, p_nb_digits); while p_nb_digits > 0 do begin if odd(p_nb_int) then Result[p_nb_digits] := '1' else Result[p_nb_digits] := '0'; p_nb_int := p_nb_int shr 1; dec(p_nb_digits); end; end; begin WQuery:=TQuery.Create(Self); // ici il s'agit d'un composant créé au runtime try WQuery.DatabaseName:=AQuery.DatabaseName; WQuery.SQL.text:='Delete FROM COMBINAISONS' WQuery.ExecSQL; for I := Trunc(power(2,20)) downto 0 do begin s:=inttobin(I,20); if s.CountChar('1')=4 then begin o:=0; r:='INSERT INTO COMBINAISONS(JOUR,HEURE,B1,B2,B3,B4) SELECT JOUR,HEURE,'; // ou r:='INSERT INTO COMBINAISONS(JOUR,HEURE,COMBI) SELECT JOUR,HEURE,'; for j:=1 to 4 do begin o:=Pos('1',s,o+1); r:=r+Format('SUBSTRING(CAST(B%d AS CHAR(2))+',[o]); r:=r+Quotedstr('_')+') FROM 1 FOR 2)'; if j<4 then r:=r+','; // ou r:=r+'||' end; r:=r+' FROM KENO2019'; Wquery.SQL.text:=R; WQuery.ExecSQL; end; end; finally WQuery.Free; end; end; procedure TForm1.Button3Click(Sender: TObject); // obtenir le résultat (remplir la grille) begin AQuery.Active:=False; AQuery.SQL.Clear; AQuery.SQL.Add('SELECT B1||B2||B3||B4 AS COMBI,Count(*) AS N FROM COMBINAISONS'); AQuery.SQL.Add('GROUP BY B1||B2||B3||B4'); AQuery.SQL.Add('ORDER BY N DESC'); AQuery.Active:=True; end; end.
vous faites ici deux opérations alors qu'il vous en faut une seule.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 AQuery.ExecSQL; AQuery.Open;
- ExecSQL exécute la requête sans renvoyer de données, on l'utilise pour des instructions telles que DELETE,INSERT,UPDATE
- Open (ou active:=true) ouvre un ensemble de données (et donc renvoi des données) on l'utilise pour SELECT, ('SELECT * FROM TABLE' étant l'équivalent d'un TTable)
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
bonjour
j’espère que tu te prend pas la tete avec moi car j'ai jamais travailler sur les bases donnée
c'est mon premier essai et je crois que sa seras le dernier mais maintenant que j'ai commence cette fonction je voudrais la finir
merci de ta patience
je viens de lancer ton dernier edit et j'ai un problème au button1
message erreur ci dessous
utilisation incorrect du mot clé (
une parentheses en trop ou en moins ,
merci
si et c'est ma dernière intervention
Quand on utilise des outils (DBASE) complètement dépassés il ne faut pas s'attendre à des miraclesc'est mon premier essai et je crois que ce sera le dernier
on a déjà vu ça et effectivement il y avait encore la parenthèse à ôter problème de copier collerutilisation incorrecte du mot clé (
J'ai finalement installé BDE et les composants BDE sur ce poste et
DBASE ne semble pas accepter la syntaxe INSERT INTO TABLE SELECT FROM AUTRETABLE !
Deuxième souci j'avais indiqué de construire COMBINAISONS avec, pour les boules, des CHAR(2) quelle ne fut pas ma surprise de voir ENCORE des entiers !
Bref une fois ces problèmes réglés autrement le programme "tourne" mais il faut une patience à toute épreuve, 1806620 enregistrements à créer ! J'ai arrêté au bout de 8648 (soit à peine 3 combinaisons) pour tester la suite.
AMHA, il faut remplir le fichier des combinaisons au fur et à mesure du remplissage des résultats
il faut surtout changer de SGBD et utiliser des threads mais ça, ça ne fait pas partie du contrat
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
salut
tiens voici les requette depuis ton fichier dbase pour l'integre dans une vrai base de donnée keno.zip
Blaise PascalNous souhaitons la vérité et nous trouvons qu'incertitude. [...]
Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
PS : n'oubliez pas le tag
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager