[..] Menu déroulant avec base de données
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[..] Menu déroulant avec base de données
Bonjour,
Après différentes recherches infructueuses je désirerais avoir un menu déroulant qui me donne des noms de personnes
(que je puisse sélectionner individuellement pour les mettre dans une variable) qui se trouvent dans un fichier texte
exemple liste de noms.txt "base de données"
essayez de me donner un exemple concret
merci d'avance
Après différentes recherches infructueuses je désirerais avoir un menu déroulant qui me donne des noms de personnes
(que je puisse sélectionner individuellement pour les mettre dans une variable) qui se trouvent dans un fichier texte
exemple liste de noms.txt "base de données"
essayez de me donner un exemple concret
merci d'avance
Re: [..] Menu déroulant avec base de données
un ficher texte n'est pas une base de donnés.gege a écrit :exemple liste de noms.txt "base de données"
oui cela est faisable avec un ficher (peut importe l'extension) ou une base de donnés pour une meilleure organisation et sécurité.
pour l'affichage et la sélection, les fonctionnalités basiques d'une gui.
indices :
Code : Tout sélectionner
FileRead ou FileReadLine
StringSplit
fonctions de gestion de gui (Gui........)
je t'aiderais si tu bloque.
- Tlem
- Site Admin

- Messages : 11830
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Menu déroulant avec base de données
Désolé legend, j'étais en train de coder pendant votre réponse.
@gege
Votre demande est plus ou moins vague, mais voici un code correspondant au cahier des charges :
On supposera que le fichier des noms est du genre :
@gege
Votre demande est plus ou moins vague, mais voici un code correspondant au cahier des charges :
► Afficher le texte
Code : Tout sélectionner
gege
Tlem
legend
Thierry
...Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [..] Menu déroulant avec base de données
t'as bien fait. j'ai pas fait de code parce que je suis paresseux
faut travailler dur pour devenir programmeur
j'en doute!gege a écrit :Après différentes recherches infructueuses
faut travailler dur pour devenir programmeur
- zeshrek
- Niveau 10

- Messages : 984
- Enregistré le : mer. 17 nov. 2010 09:31
- Localisation : Sur ma chaise
- Status : Hors ligne
Re: [..] Menu déroulant avec base de données
Si !legend a écrit :un ficher texte n'est pas une base de donnés.
Une basse de données, c'est :
dico.fr a écrit :Fichier ou ensemble de fichiers disque ou mémoire permettant le stockage permanent ou temporaire et l'accès à des informations structurées.
Wikipedia a écrit :(...) une base de données (Abr. : « BD » ou « BdD ») est un lot d'informations stockées dans un dispositif informatique
Donc vu que son fichier stocke des données de facon organiser (un nom par ligne, c'es une structure, même si elle est hyper simple) pour y accéder (via un script autoit), il s'agit de facto d'une base de données.Académie Française a écrit :Base de données, ensemble de données logiquement liées entre elles et utilisables pour des applications distinctes
Base de donnée ne veut pas forcément dire SGBD/SGBDR avec serveur, langage de requete et tout le tintouin !
Ceci étant posé, voici ma modeste contribution (sans FileRead ou FileReadLine, ni même StringSplit)
► Afficher le texte
Si vis pacem para bellum
- Tlem
- Site Admin

- Messages : 11830
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Menu déroulant avec base de données
Ha !!!zeshrek a écrit :voici ma modeste contribution (sans FileRead ou FileReadLine, ni même StringSplit)
Et dans _FileReadToArray() et _ArrayToString(), ils utilisent quoi à ton avis.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [..] Menu déroulant avec base de données
l’extension indique comment lire le contenu du fichier, donc si la structure n'est pas décrite dans l'extension elle est décrite dans le code du programme ce qui rend tout type de ficher une base de donnés.zeshrek a écrit :Si !legend a écrit :un ficher texte n'est pas une base de donnés.
Une basse de données, c'est :l’extension est juste pour indiquer comment lire le contenu du fichier, donc si la structure n'est pas décrite dans l'extension elle est décrite dans le code du programme ce qui rend tout type de ficher une base de donnés.dico.fr a écrit :Fichier ou ensemble de fichiers disque ou mémoire permettant le stockage permanent ou temporaire et l'accès à des informations structurées.
je suppose que la structure n'est donc pas dans le fichier mais dans le code.
- zeshrek
- Niveau 10

- Messages : 984
- Enregistré le : mer. 17 nov. 2010 09:31
- Localisation : Sur ma chaise
- Status : Hors ligne
Re: [..] Menu déroulant avec base de données
Peu importe ou est indiquée la struture. Ca peut etre un fichier propriétaire, et donc dont la structure est gérer dans le programme.
Ceci dit, il a bien indiqué quelle structure il voulait : 1 nom par ligne.
Ceci dit, il a bien indiqué quelle structure il voulait : 1 nom par ligne.
Si vis pacem para bellum
- jchd
- AutoIt MVPs (MVP)

- Messages : 2284
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [..] Menu déroulant avec base de données
D'accord sur ce point, mais tu as occulté la suite de ce qu'en dit Wikipédia :
Si on change un caractère dans la troisième entrée d'un fichier texte "structuré" , on doit récrire l'ensemble du fichier. S'il comporte une "très grande quantité d'informations", je sais pas moi, un fichier de recensement avec 60 millions d'entrées, on en a terminé avec l'efficacité.
De même pour retrouver Michel Tartempion dans ce bazar, mieux vaudrait avoir un distributeur de boissons proche et pas cher.
C'est un simple fichier de données sans organisation, point.
C'est là que se situent les véritables distinctions.Les technologies existantes permettent d'organiser et de structurer la base de données de manière à pouvoir facilement manipuler le contenu et stocker efficacement de très grandes quantités d'informations
Si on change un caractère dans la troisième entrée d'un fichier texte "structuré" , on doit récrire l'ensemble du fichier. S'il comporte une "très grande quantité d'informations", je sais pas moi, un fichier de recensement avec 60 millions d'entrées, on en a terminé avec l'efficacité.
De même pour retrouver Michel Tartempion dans ce bazar, mieux vaudrait avoir un distributeur de boissons proche et pas cher.
C'est un simple fichier de données sans organisation, point.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
- zeshrek
- Niveau 10

- Messages : 984
- Enregistré le : mer. 17 nov. 2010 09:31
- Localisation : Sur ma chaise
- Status : Hors ligne
Re: [..] Menu déroulant avec base de données
Hum.... pas entierement d'accord
Il est vrai que si il doit se pogner une liste de 60.000.000 entrées dans sa liste déroulante, ca risque de pas etre ce qu'il y a de plus rapide, ni même faisable (en admetant qu'il y ait assez de mémoire pour tout stocker, un tableau autoit est limité non ?).
Par contre pour son cas, cad une liste d'une dizaine ou une vingtaine d'entrées, c'est suffisant.
Bref on est plus face a une inadaptation de l'outil pour l'usage qu'on veut en faire. Une analogie : Pour creuser le trou de ma piscine, on a pas pris la pelle et le seau de mon petit neveux de 6 ans, mais une bonnne vieille pelleteuse. N'empeche que le môme il serait vachement emm*rdé si a la plage on lui refilait une pelleteuse pour faire mumuse !
Et pourtant les deux servent juste a faire des trous qu'on rempli de flotte pour patauger.
Maintenant, si on en revient au fichier texte, les données y sont facilement manipulables (il suffit d'un éditeur de texte pour ajouter une entrée), et on peut facilement y stocker de grandes quantités d'information.Il est même possible d'en stocker plus en zipant a la vollée, ou en transcodant le texte sur 7 bits, de facon a stocker 2 caracteres par octet, mais ce serait au dépend de la facilité d'accès
Enfin si il faut tout réécrire faire une modif à la 3eme entrée, c'est juste parceque le moteur de la base de donnée (donc en l'occurence le script) a été développé dans un langage (autoit) qui n'a pas de fonction qui gere l'écriture d'une ligne bien précise (pour info le basic avec lequel j'ai commencé a faire mumuse y a 30 ans avait une instruction qui permettait ce genre de manipulation...).
Mais si tu prends ce ficher, tu peux avoir une 'base de données' d'une seule table avec un enregistrement par ligne, et 2 champs, le nom et le prénom, avec comme séparateur de champs l'espace (ou pour reprendre l'exemple de tlem, un seul champs.
C'est un format de fichier 'propriétaire' dont la structure est tres limitée, mais elle existe.
Enfin pour philosopher, un "fichier texte", ca en veut rien dire. Un fichier est un fichier, il est composé d'octets, et c'est sa lectue puis son inteprétation qui lui donne un sens.
Mais je l'ai dit, je suis d'accord avec toi, ce n'est pas une base de donnée au sens ou on l'entend de nos jours, et elle ne nécéssite certainement un DBA. C'est juste que je tilte quand je lis des énormités du genre "un fichier txt n'est pas une BDD"
Fin du troll pour moi
Il est vrai que si il doit se pogner une liste de 60.000.000 entrées dans sa liste déroulante, ca risque de pas etre ce qu'il y a de plus rapide, ni même faisable (en admetant qu'il y ait assez de mémoire pour tout stocker, un tableau autoit est limité non ?).
Par contre pour son cas, cad une liste d'une dizaine ou une vingtaine d'entrées, c'est suffisant.
Bref on est plus face a une inadaptation de l'outil pour l'usage qu'on veut en faire. Une analogie : Pour creuser le trou de ma piscine, on a pas pris la pelle et le seau de mon petit neveux de 6 ans, mais une bonnne vieille pelleteuse. N'empeche que le môme il serait vachement emm*rdé si a la plage on lui refilait une pelleteuse pour faire mumuse !
Et pourtant les deux servent juste a faire des trous qu'on rempli de flotte pour patauger.
Maintenant, si on en revient au fichier texte, les données y sont facilement manipulables (il suffit d'un éditeur de texte pour ajouter une entrée), et on peut facilement y stocker de grandes quantités d'information.Il est même possible d'en stocker plus en zipant a la vollée, ou en transcodant le texte sur 7 bits, de facon a stocker 2 caracteres par octet, mais ce serait au dépend de la facilité d'accès
Enfin si il faut tout réécrire faire une modif à la 3eme entrée, c'est juste parceque le moteur de la base de donnée (donc en l'occurence le script) a été développé dans un langage (autoit) qui n'a pas de fonction qui gere l'écriture d'une ligne bien précise (pour info le basic avec lequel j'ai commencé a faire mumuse y a 30 ans avait une instruction qui permettait ce genre de manipulation...).
Mais si tu prends ce ficher, tu peux avoir une 'base de données' d'une seule table avec un enregistrement par ligne, et 2 champs, le nom et le prénom, avec comme séparateur de champs l'espace (ou pour reprendre l'exemple de tlem, un seul champs.
C'est un format de fichier 'propriétaire' dont la structure est tres limitée, mais elle existe.
Enfin pour philosopher, un "fichier texte", ca en veut rien dire. Un fichier est un fichier, il est composé d'octets, et c'est sa lectue puis son inteprétation qui lui donne un sens.
Mais je l'ai dit, je suis d'accord avec toi, ce n'est pas une base de donnée au sens ou on l'entend de nos jours, et elle ne nécéssite certainement un DBA. C'est juste que je tilte quand je lis des énormités du genre "un fichier txt n'est pas une BDD"
Fin du troll pour moi
Si vis pacem para bellum
- jchd
- AutoIt MVPs (MVP)

- Messages : 2284
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [..] Menu déroulant avec base de données
L'octet à 14 bits, c'est juste ça qu'il faut pour résoudre le problème des dettes souveraines : on va serrer très fort les bits dans les octets, exactement comme on va tous se serrer la ceinture.en transcodant le texte sur 7 bits, de facon a stocker 2 caracteres par octet
Il y en a peut-être à qui ça ferait le plus grand bien, de bouffer un temps des nèfles et des courants d'air ...
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Re: [..] Menu déroulant avec base de données
et moi je retire ce que j'ai dit a propos des fichiers texte
(bonne chance jchd
)

une Dll peut êtreTlem a écrit :Ha !!!zeshrek a écrit :voici ma modeste contribution (sans FileRead ou FileReadLine, ni même StringSplit)![]()
Et dans _FileReadToArray() et _ArrayToString(), ils utilisent quoi à ton avis.
Re: [..] Menu déroulant avec base de données
Bonjour,
Merci à tous
Tout particulièrement à Zeshrek et Tlem pour sa démonstration
Avec votre aide j'ai réussi à faire une guise avec 2 menus déroulants avec à l'intérieur des noms de classes et d'élèves pour créer une suite de dossiers Serait-il possible d'avoir un complément d'informations Pour corser l'affaire, il faudrait que chaque classe corresponde à un groupe d'élèves 6B : Christine : pascal ….. puis 3A :André : Gérard…
Serait il possible d’avoir des explications sur chaque ligne du programme
un bouton quitter que je n'arrive pas à faire fonctionner
+ la création des dossiers par les variables
Peu ton avoir 1 seul fichier .txt pour les différentes classe + nom prenom
Merci à tous
gege
Merci à tous
Tout particulièrement à Zeshrek et Tlem pour sa démonstration
Avec votre aide j'ai réussi à faire une guise avec 2 menus déroulants avec à l'intérieur des noms de classes et d'élèves pour créer une suite de dossiers Serait-il possible d'avoir un complément d'informations Pour corser l'affaire, il faudrait que chaque classe corresponde à un groupe d'élèves 6B : Christine : pascal ….. puis 3A :André : Gérard…
Serait il possible d’avoir des explications sur chaque ligne du programme
un bouton quitter que je n'arrive pas à faire fonctionner
+ la création des dossiers par les variables
Peu ton avoir 1 seul fichier .txt pour les différentes classe + nom prenom
Merci à tous
gege
► Afficher le texte
Re: [..] Menu déroulant avec base de données
pour le bouton exit faut ajouter ces 2lignes avant le endswitch :
pour créer un dossier (facile a trouver avec une petite recherche sur le fofo)
la fonction : DirCreate ($chemin)
le chemin peut être variable.
pour stocker le tout en un seul ficher.
on suppose que la lecture du fichier est stockée dans $fichier.
Code : Tout sélectionner
case $exititem
exitla fonction : DirCreate ($chemin)
le chemin peut être variable.
pour stocker le tout en un seul ficher.
on suppose que la lecture du fichier est stockée dans $fichier.
► Afficher le texte
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [..] Menu déroulant avec base de données
Dans ce cas peut-être qu'un fichier ini serait mieux, de la forme (par exemple)gege a écrit : il faudrait que chaque classe corresponde à un groupe d'élèves 6B : Christine : pascal ….. puis 3A :André : Gérard…
Code : Tout sélectionner
[6B]
1=Christine
2=Pascal
[3A]
1=André
2=Gérard
ce qui renvoie : $eleves[0][0] = nombre d'élèves dans la classe 6B, et $eleves[1][1] = Christine, $eleves[2][1] = Pascal, etc
C'est plus simple pour renvoyer ensuite dans une combo
Par exemple (pour faire simple) :
Code : Tout sélectionner
If GuiCtrlRead($combo1) = "6B" Then $eleves = IniReadSection("fichier.ini", "6B")Code : Tout sélectionner
For $i = 1 To $eleves[0][0]
GuiCtrlSetData($combo2, $eleves[$i][1] & "|") ; noms des élèves
NextBonus : placé en début de script, IniReadSectionNames("fichier.ini") renvoie le nombre de classes et une liste de toutes les classes, ce qui permet de remplir la combo1 ...
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
- zeshrek
- Niveau 10

- Messages : 984
- Enregistré le : mer. 17 nov. 2010 09:31
- Localisation : Sur ma chaise
- Status : Hors ligne
Re: [..] Menu déroulant avec base de données
La solution de mikell est pas mal du tout.
Sauf que j'ai l'impression qu'on a pas tout le cahier des charges, et du coup, je vais commencer a douter. Parceque si on doit avoir encore des ajouts, on va p'tet passer rapidement a une petite base SQL, sans quoi on va tres vite tomber dans les travers que soulevait jchd tout a l'heure.
Donc si il n'y a rien de plus que les classes et les eleves par classe, ca ira. Maintenant si tu veux mettre je sais pas moi, leurs notes par matiere, ou leurs emplois du temps, ce genre de trucs... passe au SQL
Sauf que j'ai l'impression qu'on a pas tout le cahier des charges, et du coup, je vais commencer a douter. Parceque si on doit avoir encore des ajouts, on va p'tet passer rapidement a une petite base SQL, sans quoi on va tres vite tomber dans les travers que soulevait jchd tout a l'heure.
Donc si il n'y a rien de plus que les classes et les eleves par classe, ca ira. Maintenant si tu veux mettre je sais pas moi, leurs notes par matiere, ou leurs emplois du temps, ce genre de trucs... passe au SQL
Si vis pacem para bellum
- bloodwolff
- Membre émérite

- Messages : 655
- Enregistré le : ven. 18 avr. 2008 22:36
- Localisation : Québec
- Status : Hors ligne
Re: [..] Menu déroulant avec base de données
Probablement des RegexTlem a écrit :Ha !!!zeshrek a écrit :voici ma modeste contribution (sans FileRead ou FileReadLine, ni même StringSplit)![]()
Et dans _FileReadToArray() et _ArrayToString(), ils utilisent quoi à ton avis.
Compte skype : bloodwolfff
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [..] Menu déroulant avec base de données
Ah mais, ya encore une place (juste une) dans le fichier ini pour mettre un renseignement, si on l'écrit comme çazeshrek a écrit :si il n'y a rien de plus que les classes et les eleves par classe, ca ira. Maintenant si tu veux mettre je sais pas moi, leurs notes par matiere, ou leurs emplois du temps, ce genre de trucs...
Code : Tout sélectionner
[6B]
Christine=renseignement1
Pascal=renseignement2... mais l'ogre a un flair redoutable
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
- jchd
- AutoIt MVPs (MVP)

- Messages : 2284
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [..] Menu déroulant avec base de données
Connaissant mon addiction à SQLite, je m'abstiens de m'étendre plus (ça serait déjà torché).
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.


