« 1 (2)


Re: Enregistrer des variables
Blendie
Inscrit:
02/04/2010 12:08
Post(s): 40
D'accord, mais qu'est-ce que le Pickle ????
J'ai quelques bases en Python, mais QUE quelques....
Tout lien ou tutoriel sera le bienvenu....

Merci

PS : Version utilisée : 2.49

Contribution le : 02/10/2010 14:58
Créer un fichier PDF de la contribution Imprimer


Re: Enregistrer des variables
Fou Furieux du Clan
Inscrit:
02/11/2008 19:26
Post(s): 238
Bonjour,

il faut utiliser le module pickle je crois.

Corrigez-moi si c'est faux :

Script "sauvegarder" :
import pickle

chaine = "chaine de caracteres"
nombre = 25.46

fichier = open("NomDuFichier.extension", "wb")

pickle.dump(chaine, fichier)
pickle.dump(nombre, fichier)

fichier.close()


Script "charger" :
import pickle

fichier = open("NomDuFichier.extension", "rb")

variable_1 = pickle.load(fichier)
variable_2 = pickle.load(fichier)

print(variable_1)
print(variable_2)
print(variable_2 + 10.75)

fichier.close()


Les chaines de caractères restent des chaines de caractères, les nombres restent des nombres, les listes restent des listes ... etc.

Voilà


Contribution le : 02/10/2010 18:40
_________________
Guillaume
Créer un fichier PDF de la contribution Imprimer


Re: Enregistrer des variables
Blendie
Inscrit:
02/04/2010 12:08
Post(s): 40
Merci

Donc, ma variable, je la sauve comme ca ? :

co = GameLogic.getCurrentController()
obj = co.owner
variablevie = "Vie"
valuevie = obj["OBJoueur"].Vie

fichier = open("NomDuFichier.extension", "wb")

pickle.dump(variablevie, fichier)
pickle.dump(valuevie, fichier)

fichier.close()



Mais je pense que c'est faux, et complettement, je pense.

Contribution le : 02/10/2010 18:58
Créer un fichier PDF de la contribution Imprimer


Re: Enregistrer des variables
Fou Furieux du Clan
Inscrit:
02/11/2008 19:26
Post(s): 238
Il y a une erreur lors de la récupération de la variable.

Correction :
co = GameLogic.getCurrentController()
obj = co.owner
variablevie = "Vie"
valuevie = obj["Vie"]

fichier = open("NomDuFichier.extension", "wb")

pickle.dump(variablevie, fichier)
pickle.dump(valuevie, fichier)

fichier.close()


Je pense que ça fonctionnera mieux


Contribution le : 02/10/2010 19:05
_________________
Guillaume
Créer un fichier PDF de la contribution Imprimer


Re: Enregistrer des variables
Fou Furieux du Clan
Inscrit:
28/11/2007 12:15
De Bretagne, et fier d'y être ! ou pas...
Post(s): 271
Dans ton fichier de départ, je pense que ton erreur a été de ne pas mettre [0:-1] après readline().

Blendenzo le fait, et il ne dit pas pourquoi. (attention dans les lignes de code il fait une erreur de syntaxe avec une parenthèse perdue, mais dans son blend c'est bon.)

Citation :
Mais je pense que c'est faux, et complettement, je pense.


Et pourquoi donc ? (Par contre obtenir une variable avec objet.variable est déprécié, il faut faire objet['variable'].)
(EDIT: grilled)


Contribution le : 02/10/2010 19:09
Créer un fichier PDF de la contribution Imprimer


Re: Enregistrer des variables
Blendie
Inscrit:
02/04/2010 12:08
Post(s): 40
En disant que c'était faux, je parlais de mon interprétation, pas du script de Gui63fr.

Et pour reprender ma variable vie ?

Je n'ai pas compris pourquoi gui63fr utilise 2 variable ? une pour le nom et une pour la valeur ?

Et pourquoi les afficher ? avec + 10.75 ?

Excuse moi, cela doit te parraitre bête, mais je ne sais pas si ce que tu marque est obligatoire, ou si c'est en exemple.... :gne

Contribution le : 02/10/2010 19:21
Créer un fichier PDF de la contribution Imprimer


Re: Enregistrer des variables
Fou Furieux du Clan
Inscrit:
02/11/2008 19:26
Post(s): 238
Citation :
(EDIT : grilled)

Nananèreuuuuuh!


BABe, tu peux mettre autant de variables que tu veux, et le type (chaine, nombre, liste...) n'a aucune importance, c'était juste une exemple.

Et le "+ 10.75" c'était juste pour montrer que la valeur récupérée (25.46) était bien un nombre et pas une chaine de caractères.

Libre à toi de mettre ce que tu veux.

Pas besoin de mettre une chaine de caractère puis un nombre comme je l'ai fait, mais ça peut servir de repère pour savoir à quoi correspond la donnée (une chaine descriptive puis la valeur à chaque fois), pour des sauvegardes "non-homogènes" (très pratique).

Bon script


Contribution le : 02/10/2010 20:03
_________________
Guillaume
Créer un fichier PDF de la contribution Imprimer


Re: Enregistrer des variables
OverdOzed
Inscrit:
24/07/2008 00:45
De Paris
Post(s): 3447
Citation :
Et pourquoi donc ?

Pour retirer le caractère \n (retour chariot) qui est en fin de ligne.

Citation :
Je n'ai pas compris pourquoi gui63fr utilise 2 variable ? une pour le nom et une pour la valeur ?

C'était juste un exemple pour montrer que ça marche pour différents types de variable.
Mais dans ton cas, ça ne sert à rien d'enregistrer "Vie" dans le fichier. Tu sais très bien que la vie est la première ligne puisque c'est toi qui a créé le fichier.

Citation :
Et pourquoi les afficher ? avec + 10.75 ?

Là encore, c'est pour l'exemple, pour montrer que les variables ont bien conservé leur valeur. Et le + 10.75, c'est pour montrer que la deuxième variable est toujours considérée comme chiffre, ce qui est pratique.

Citation :
Et pour reprender ma variable vie ?

Bah, dans avec ton code tel qu'il est :
import pickle

fichier = open("NomDuFichier.extension", "rb")

tmp = pickle.load(fichier) # Ligne pour récupérer la variable contenant "Vie"
vie = pickle.load(fichier)

Mais si tu retires la variable contenant "Vie" qui est inutile, tu pourras retirer la ligne commentée.

Edit : Décidément, Gui36fr, t'as décidé d'être le premier aujourd'hui !

Contribution le : 02/10/2010 20:04
_________________
Tuto MaPZone
Créer un fichier PDF de la contribution Imprimer


Re: Enregistrer des variables
Fou Furieux du Clan
Inscrit:
02/11/2008 19:26
Post(s): 238
Citation :
Edit : Décidément, Gui36fr, t'as décidé d'être le premier aujourd'hui !


Contribution le : 02/10/2010 22:35
_________________
Guillaume
Créer un fichier PDF de la contribution Imprimer


Re: Enregistrer des variables
Blendie
Inscrit:
02/04/2010 12:08
Post(s): 40
Merci infiniment !!!

Ca marche !

Et encore merci de votre patience face à mon incompréhension !


Contribution le : 03/10/2010 11:44
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant
« 1 (2)




Enregistrer votre réponse
Compte*
Nom   Mot de passe   Authentification
Message:*



[Recherche avancée]



Sujets récemment répondus
Forums Sujets Réponses Lus Dernières contributions
The Blender Clan 'tchat OverdOzed 5 114 Hier 20:56:50
Rimpotche 
Questions & Réponses "Transform" appliqué à plusieurs objets 5 86 24/05 20:18:53
moonboots 
Questions & Réponses [résolu] Entendre les sons dans le Layout 1 56 23/05 16:41:20
Horemheb 
The Blender Clan 'tchat Blender 2.8x : Actus, tests, feedback..    [1][2][3]...[10] 98 59467 22/05 12:03:20
Bibi09 
Questions & Réponses [résolu] Problème pour fermer 2 courbes nurbs 1 66 22/05 09:11:42
blendinfos 
Questions & Réponses rétrécir une face par rapport uniformément à son bord plutôt que par rapport à son centre. 9 29881 22/05 00:06:13
meltingman 
Questions & Réponses APPEL AUX VOLONTAIRES 1 152 21/05 17:09:19
Melodicpinpon 
Questions & Réponses Labels autour de l'objet 2 121 19/05 14:33:09
Redstar 
Questions & Réponses export 1000x trop petit 6 203 19/05 08:25:26
Redstar 
Hors Sujet !! FActualités : un petit journal humoristique    [1][2] 12 1121 18/05 02:06:25
meltingman 
Hors Sujet !! Le mal des répondeurs du forum (nouzautr's) 9 291 18/05 01:52:27
Thewada 
Moteur de jeu GameBlender et alternatives [non résolu] Cs (vaisseau)    [1][2][3]...[57] 565 183299 17/05 20:44:39
Redstar 
Questions & Réponses Séparer un script en plusieurs add-ons 3 184 17/05 13:10:08
Redstar 
Questions & Réponses Graph editor: ne peut pas changer le handle type en free ? 9 257 17/05 12:27:31
Redstar 
Questions & Réponses [résolu] Transfer simulation cloth en boucle 5 325 17/05 12:25:56
Redstar 
Questions & Réponses [résolu] Pas d'ombre sur l'objet 8 246 16/05 19:37:11
Lylo 
Questions & Réponses Prb modélisation hache | mirror modifier 3 185 15/05 07:05:53
Rimpotche 
Questions & Réponses [résolu] Blend4web et Blender version 2.80 ?    [1][2] 16 3277 14/05 09:50:34
blendinfos 
Questions & Réponses Je patine avec mon personnage 8 458 14/05 00:37:43
Lylo 
Questions & Réponses [résolu] rendre visible image as plane et wireframe 3 176 13/05 15:54:36
Rimpotche 

Qui est en ligne
170 utilisateur(s) en ligne (dont 96 sur Forums)

Membre(s): 0
Invité(s): 170


plus...
Nouveaux membres
FlorrieFen 26/5/2022
JeannineRo 26/5/2022
ArdisNesmi 26/5/2022
ModestoAkp 26/5/2022
ReynaBrake 26/5/2022
FloydKirk 26/5/2022
DorotheaOg 26/5/2022
TaraPepper 26/5/2022
DianMadewe 26/5/2022
PrinceBrie 26/5/2022
Dernier Ajout
2020-09-24.jpg

Evènements à venir
Jui 30
Anniv des Jedi :-D
Jui 9
BUG de Lyon
Jui 23
Anniv du BlenderClan !
plus 238 plus d'élément(s)
 Par Mickaël Guédon [ebrain] © 2003-2021 The Blender Clan - hébergé par TuxFamily - Site déclaré à la CNIL sous le numéro 1155445