[..] Menu déroulant avec base de données

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
gege
Niveau 3
Niveau 3
Messages : 47
Enregistré le : ven. 11 nov. 2011 20:03
Status : Hors ligne

[..] Menu déroulant avec base de données

#1

Message par gege »

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
Avatar du membre
legend
Niveau 7
Niveau 7
Messages : 472
Enregistré le : dim. 26 sept. 2010 12:55
Status : Hors ligne

Re: [..] Menu déroulant avec base de données

#2

Message par legend »

gege a écrit :exemple liste de noms.txt "base de données"
un ficher texte n'est pas une base de donnés.
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........)
 
c'est vraiment pas dur, si tu veut apprendre a coder commence avec ça.
je t'aiderais si tu bloque.
Avatar du membre
Tlem
Site Admin
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

#3

Message par Tlem »

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 :
► Afficher le texte
On supposera que le fichier des noms est du genre :

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é".
Avatar du membre
legend
Niveau 7
Niveau 7
Messages : 472
Enregistré le : dim. 26 sept. 2010 12:55
Status : Hors ligne

Re: [..] Menu déroulant avec base de données

#4

Message par legend »

t'as bien fait. j'ai pas fait de code parce que je suis paresseux :mrgreen:
gege a écrit :Après différentes recherches infructueuses
j'en doute! :roll:
faut travailler dur pour devenir programmeur :evil:
Avatar du membre
zeshrek
Niveau 10
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

#5

Message par zeshrek »

legend a écrit :un ficher texte n'est pas une base de donnés.
Si !
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
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
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.
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
Avatar du membre
Tlem
Site Admin
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

#6

Message par Tlem »

zeshrek a écrit :voici ma modeste contribution (sans FileRead ou FileReadLine, ni même StringSplit)
Ha !!! :shock:

Et dans _FileReadToArray() et _ArrayToString(), ils utilisent quoi à ton avis. :lol:
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é".
Avatar du membre
zeshrek
Niveau 10
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

#7

Message par zeshrek »

J'veux surtout pas l'savoir ;)
Si vis pacem para bellum
Avatar du membre
legend
Niveau 7
Niveau 7
Messages : 472
Enregistré le : dim. 26 sept. 2010 12:55
Status : Hors ligne

Re: [..] Menu déroulant avec base de données

#8

Message par legend »

zeshrek a écrit :
legend a écrit :un ficher texte n'est pas une base de donnés.
Si !
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.
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.
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.
je suppose que la structure n'est donc pas dans le fichier mais dans le code.
Avatar du membre
zeshrek
Niveau 10
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

#9

Message par zeshrek »

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.
Si vis pacem para bellum
Avatar du membre
jchd
AutoIt MVPs (MVP)
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

#10

Message par jchd »

D'accord sur ce point, mais tu as occulté la suite de ce qu'en dit Wikipédia :
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
C'est là que se situent les véritables distinctions.
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é.
Avatar du membre
zeshrek
Niveau 10
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

#11

Message par zeshrek »

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
Si vis pacem para bellum
Avatar du membre
jchd
AutoIt MVPs (MVP)
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

#12

Message par jchd »

en transcodant le texte sur 7 bits, de facon a stocker 2 caracteres par octet
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.

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é.
Avatar du membre
legend
Niveau 7
Niveau 7
Messages : 472
Enregistré le : dim. 26 sept. 2010 12:55
Status : Hors ligne

Re: [..] Menu déroulant avec base de données

#13

Message par legend »

et moi je retire ce que j'ai dit a propos des fichiers texte :mrgreen: (bonne chance jchd :twisted: )

Tlem a écrit :
zeshrek a écrit :voici ma modeste contribution (sans FileRead ou FileReadLine, ni même StringSplit)
Ha !!! :shock:

Et dans _FileReadToArray() et _ArrayToString(), ils utilisent quoi à ton avis. :lol:
une Dll peut être :P
gege
Niveau 3
Niveau 3
Messages : 47
Enregistré le : ven. 11 nov. 2011 20:03
Status : Hors ligne

Re: [..] Menu déroulant avec base de données

#14

Message par gege »

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
► Afficher le texte
Avatar du membre
legend
Niveau 7
Niveau 7
Messages : 472
Enregistré le : dim. 26 sept. 2010 12:55
Status : Hors ligne

Re: [..] Menu déroulant avec base de données

#15

Message par legend »

pour le bouton exit faut ajouter ces 2lignes avant le endswitch :

Code : Tout sélectionner

case $exititem
exit
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.
► Afficher le texte
Avatar du membre
mikell
Spammer !
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

#16

Message par mikell »

gege a écrit : il faudrait que chaque classe corresponde à un groupe d'élèves 6B : Christine : pascal ….. puis 3A :André : Gérard…
Dans ce cas peut-être qu'un fichier ini serait mieux, de la forme (par exemple)

Code : Tout sélectionner

[6B]
1=Christine
2=Pascal

[3A]
1=André
2=Gérard
 
On lit les classes avec : $eleves = IniReadSection("fichier.ini", "6B")
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 :wink:
Par exemple (pour faire simple) :

Code : Tout sélectionner

If GuiCtrlRead($combo1) = "6B" Then $eleves = IniReadSection("fichier.ini", "6B")
Et hop on alimente la combo2 avec une boucle For qui liste les valeurs renvoyées

Code : Tout sélectionner

For $i = 1 To $eleves[0][0]
   GuiCtrlSetData($combo2, $eleves[$i][1] & "|")   ; noms des élèves
Next
Ouala Image

Bonus : 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 )
Avatar du membre
zeshrek
Niveau 10
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

#17

Message par zeshrek »

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
Si vis pacem para bellum
Avatar du membre
bloodwolff
Membre émérite
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

#18

Message par bloodwolff »

Tlem a écrit :
zeshrek a écrit :voici ma modeste contribution (sans FileRead ou FileReadLine, ni même StringSplit)
Ha !!! :shock:

Et dans _FileReadToArray() et _ArrayToString(), ils utilisent quoi à ton avis. :lol:
Probablement des Regex :P
Compte skype : bloodwolfff
Avatar du membre
mikell
Spammer !
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

#19

Message par mikell »

zeshrek 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...
Ah mais, ya encore une place (juste une) dans le fichier ini pour mettre un renseignement, si on l'écrit comme ça

Code : Tout sélectionner

[6B]
Christine=renseignement1
Pascal=renseignement2
Pour l'instant un fichier ini correspond nickel au cahier des charges initial et à l'exemple de script présenté... après, on verra
... mais l'ogre a un flair redoutable :mrgreen:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jchd
AutoIt MVPs (MVP)
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

#20

Message par jchd »

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é.
Répondre