« 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
Questions & Réponses [non résolu] Os et FBX 0 4 Aujourd'hui 09:12:13
zeromeetsinfinity 
[WIP] et travaux terminés Anatomie open source dans Blender 8 1309 Aujourd'hui 09:00:04
zeromeetsinfinity 
Moteur de jeu GameBlender et alternatives [WIP] Godot Engine - Projet Arsenal 3 81 Aujourd'hui 08:50:14
Redstar 
Questions & Réponses Smoothing groups ou équivalent ? (3dsMax to Blender) 7 131 Aujourd'hui 01:10:41
JaAlVir657 
Graphisme alternatif faire de la bd avec blender    [1][2][3]...[9] 88 6239 Hier 18:54:27
blend74 
Graphisme alternatif les addons pour blender : bumarin etc    [1][2] 12 449 20/09 21:56:56
blend74 
Questions & Réponses [non résolu] Problème Aspect du verre (Glass BSDF) 1 67 20/09 19:50:51
Miaunik 
The Blender Clan 'tchat Avenir du blender clan    [1][2][3]...[40] 397 39214 17/09 17:56:10
Bibi09 
Questions & Réponses [non résolu] IES Lights 4 171 17/09 16:24:14
jcnouveau 
Questions & Réponses Couleur de peau 0 91 17/09 14:31:20
Carne 
Hors Sujet !! Sinoceratops project - Ateliers suivies de A à l'Animation    [1][2][3][4] 34 4069 16/09 20:53:38
meltingman 
Questions & Réponses Combien pour me faire un script qui permet d'ajouter une option driver sur l'icone de l'oeil? 6 394 16/09 14:56:23
lucky 
Questions & Réponses Ouvrir une définition (fichier .txt) de l'objet actif avec un raccourci depuis la vue 3D 0 87 15/09 15:30:03
Melodicpinpon 
[WIP] et travaux terminés [terminé] Utilisation de Blender pour esquisser des objets réels    [1][2] 12 327 14/09 19:18:19
MilWolf 
The Blender Clan 'tchat ANNONCE IMPORTANTE : LE BLENDER CLAN REOUVRE !! Etat des lieux sur le présent et le futur :)    [1][2] 19 2711 14/09 12:20:39
Riggelm 
The Blender Clan 'tchat Les tutos de Stev ( CG Groovy ) 6 1145 13/09 11:17:43
stev 
Questions & Réponses Les objets qui voyagent seuls 2 170 12/09 14:20:48
D3DModelisation 
Hors Sujet !! les tutos de Moonboots    [1][2][3]...[21] 202 18744 11/09 20:09:34
moonboots 
Moteur de jeu GameBlender et alternatives [non résolu] Cs (vaisseau)    [1][2][3]...[55] 544 167773 11/09 10:08:20
sbkodama 
Questions & Réponses control sur le grow mask et smooth mask en sculpt 2 196 10/09 23:50:51
maxime 

Qui est en ligne
147 utilisateur(s) en ligne (dont 78 sur Forums)

Membre(s): 11
Invité(s): 136


mathou, TristaDrak, CarmaHambl, BrianneCam, ElanaNavar, GracieUrt9, Angelina06, GiseleIcel, HeatherHip, KindraFox, ConnorE10, plus...
Nouveaux membres
AimraneDag 22/9/2021
KaceyL3476 22/9/2021
CallumIhr7 22/9/2021
Mohamedach 22/9/2021
PassionisC 22/9/2021
PerryHanna 22/9/2021
ChantalChe 22/9/2021
DanielleGa 22/9/2021
MassireBou 22/9/2021
EpifaniaCh 22/9/2021
Dernier Ajout
2020-09-24.jpg

Evènements à venir
Oct 8
Anniversaire du Grand Mechant Fadge
Nov 18
Anniversaire de RichDeg
Dec 29
Anniversaire d'ebrain
plus 248 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