#1 Le 29/07/2015, à 06:54
- iMadz
Enregistrement des données tapées par l'utilisateur
Bonjour,
Je suis entrain de faire un unix script. Quand l'utilisateur l'execute, le programme lui demande s'il veut enregistrer de nouveaux membres ou bien afficher la liste des membres enregistrés. Quand l'utilisateur enregistre de nouveaux membres, leur nom est mis dans un tableau, ce qui permetterai de les afficher plus tars. Cependant, je veux bien que les données dans le tableau soient enregistrés même quand le script est fermé (ce qui n'est pas le cas bien sûr). Comme ça, la prochaine fois que l'utilisateur ouvre le script, il peut simplement afficher la liste des membres déjà enregistrés auparavant. Je pense que ce n'est pas possible, sauf si je les sauvegarde dans un fichier texte puis je les charge lors de la prochaine ouverture du script.. non? Et si c'est le cas, je ne sais pas comment le faire .
Pourriez-vous m'aider concernant ce sujet?
Merci d'avance! ^^
Hors ligne
#2 Le 29/07/2015, à 07:45
- credenhill
Re : Enregistrement des données tapées par l'utilisateur
hello
sauver le contenu d'un tableau dans 1 fichier, 1 entrée par ligne ou sur 1 ligne
$ printf "%s\n" ${t[@]} > fichier
$ echo ${t[@]} > fichier
Hors ligne
#3 Le 29/07/2015, à 07:51
- iMadz
Re : Enregistrement des données tapées par l'utilisateur
hello
sauver le contenu d'un tableau dans 1 fichier, 1 entrée par ligne ou sur 1 ligne$ printf "%s\n" ${t[@]} > fichier $ echo ${t[@]} > fichier
et donc à chaque fois que l'utilisateur rentre un nom il sera enrefistré et dans le tableau et dans le fichier. Puis à la prochaine ouverture je dirais au script d'aller chercher les noms dans le fichier et les mettre dans le tableau? et comment je lui dit de les chercher du fichier et les mettre dans le tableau?
et en fait, le code ne marche pas, a chaque fois que je tape un noveau nom, il remplace l'ancien!
Dernière modification par iMadz (Le 29/07/2015, à 08:07)
Hors ligne
#4 Le 29/07/2015, à 08:25
- credenhill
Re : Enregistrement des données tapées par l'utilisateur
non, le tableau n'est sauvé qu'à l'exécution de ces commandes
pour relire le tableau depuis le fichier
t=( $(<fichier) )
Hors ligne
#5 Le 29/07/2015, à 09:05
- iMadz
Re : Enregistrement des données tapées par l'utilisateur
hello
$ printf "%s\n" ${t[@]} > fichier
en fait, il faut remplacer le ">" par ">>" sinon a chaque fois qu'on ecrit dans le fichier, tout ce qui etait present sera ecrasé!
et la ça marche! merci beaucoup pour ton aide!
Hors ligne
#6 Le 29/07/2015, à 12:56
- erresse
Re : Enregistrement des données tapées par l'utilisateur
Bonjour,
credenhill n'a pas tort... Si tu charges le tableau avec le contenu du fichier lorsque tu démarres le script, puis que tu ajoutes de nouveaux noms au tableau pendant la saisie, il faut le sauver une seule fois en quittant le script. L'ensemble des données contenues dans le tableau seront alors enregistrées dans le fichier.
Si tu fais des ajouts au fichier avec >> tu auras des données en double !
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#7 Le 30/07/2015, à 07:47
- iMadz
Re : Enregistrement des données tapées par l'utilisateur
Si tu fais des ajouts au fichier avec >> tu auras des données en double !
En fait, ca marche très bien avec moi en utilisant >> parce qu'à chaque foi que j'utilise > ça efface le contenu du text et ça ne met rien à la place!
J'ai fait un test_text.txt file pour tester. J'ai mis dedans 5 noms. Quand je fais par exemple grep -v john test_text.txt > test_text.txt, il efface le contenu du fichier et ne met plus aucun nom.
Cependant, si je fait que grep -v john test_text.txt dans mon terminal, je voie tous les noms affichés sauf john et donc ça marche bien mais que dans le terminal!
Une idée pourquoi ça efface le contenu du fichier texte?
Hors ligne
#8 Le 30/07/2015, à 08:10
- credenhill
Re : Enregistrement des données tapées par l'utilisateur
> remet le fichier à 0 et ajoute les données
>> ajoute aux données existantes
c'est au choix,cf man bash
Hors ligne