#1 Le 27/09/2005, à 18:03
- anonyme1
[résolu] Création d'un petit programme
Salut:
je cherche à créer un petit programme qui permettrait, à partir d'une liste issue d'un fichier txt (composée par ex. des éléments A,B,C, ........, Z) de tirer un élément au sort (A par exemple) puis dans un second de tirer un autre élément de liste restante (tous sauf le A) etc ... jusqu'à ce que tous les éléments soien tirés...
Je n'ai malheureusement aucune notion solide de programmation, je fais donc appel à vos compétences.
Merci
Dernière modification par redrum (Le 05/01/2009, à 18:09)
#2 Le 27/09/2005, à 18:55
- tshirtman
Re : [résolu] Création d'un petit programme
euuuuuuuuu on est pas sur un forum de programmation mais si tu sais un peu programmer en c
des recherches sur le web devrait t'aider, je te donne deux trois pistes,
tu as les commandes
fopen :pour ouvrir un fichier, et le faire pointer sur un pointeur de type FILE (fait attention a l'ouvrir en LECTURE ...)
getc :pour lire le caractère suivant de ton fichier (et avancer), (tu peut tout charger dans un tableau par exemple)
rand :pour tirer un nombre aléatoire...(il faut l'initialiser d'abords , tu trouveras je pense)
bon courage, mais rappel toi, on apprend pas a programmer en 1 jour! (sinon ce serait pas un métier)
Dernière modification par tshirtman (Le 27/09/2005, à 18:59)
Hors ligne
#3 Le 27/09/2005, à 19:31
- rihegher
Re : [résolu] Création d'un petit programme
pour un ptit programme comme celui ci pourquoi en bash?
sans avoir des notions tres solides tu peux avoir une idee de ce que tu peux faire avec ce petit guide:
http://www.bsdbooks.net/shells/scripting/fr/
j aime bien le c mais pour des tout petit programme le bash est souvent suffisant et moins lourd a mettre en place car pas de compilation
Hors ligne
#4 Le 27/09/2005, à 19:56
- crypto178
Re : [résolu] Création d'un petit programme
bah c'est pas la peine de sortir la grosse artillerie, 5 minutes de magie pythonienne :
import sys
from random import randrange
f = open(sys.argv[1],"r")
donnees = f.read().strip("\n").split(", ")
while len(donnees) > 1:
print donnees.pop(randrange(len(donnees)))
print donnees.pop()
f.close()
tu met ça dans un fichier que tu nommes en .py, comme par exemple randompick.py
puis tu crées un fichier avec tes données séparées par des virgules et un espace :
A, B, C, D, E, F
tu sauves ça dans un fichier texte
et puis tu tappes dans un terminal
python randompick.py donnees.txt
et voilà, à chaque fois que tu tappes la commande ça devrait sortir les donnees dans un ordre different!
c'était pas bien compliqué
EDIT:
une autre version si tu souhaites avoir tous les resultats sur la même ligne
import sys
from random import shuffle
f = open(sys.argv[1],"r")
donnees = f.read().strip("\n").split(", ")
shuffle(donnees)
print ", ".join(donnees)
Dernière modification par crypto178 (Le 27/09/2005, à 20:01)
Hors ligne
#5 Le 27/09/2005, à 20:35
- anonyme1
Re : [résolu] Création d'un petit programme
super, un grand merci pour ce coup de main ....
le python c un peu du chinois pour moi ...
et si le fichier source est la feuille n°1 d'un fichier gnumeric ?
A = valeur de la cellule A1
B = valeur de la cellule B1 ......
et on souhaite imprimer le résultat dans la feuille n°2 du même fichier ?
1ere valeur tirée = valeur de la cellule A1
2eme valeur tirée = valeur de la cellule B1 ......
Dernière modification par redrum (Le 27/09/2005, à 20:38)
#6 Le 27/09/2005, à 21:19
- crypto178
Re : [résolu] Création d'un petit programme
ah gnumeric je ne connais pas du tout, il faudrait que tu me donnes un peu plus d'infos sur le format de ces fichiers.
Hors ligne