[Tutoriel]Sauvegarde avec MEM$
+3
S.lexis
fenixelf
J8B
7 participants
Page 1 sur 2
Page 1 sur 2 • 1, 2
[Tutoriel]Sauvegarde avec MEM$
O)INTRODUCTION
Bienvenue dans le tutoriel de sauvegarde MEM$.
MEM$ est une variable système alphanumérique pouvant contenir 256 caractères. (merci pour la correction)
Elle est utilisée pour créer des sauvegardes et des chargements.
Mais avant de savoir comment sauvegarder votre fichier MEM$, il faut savoir le remplir.
I)MEM$ ET SAUVEGARDER
Votre jeu fonctionne grâce aux variables, et celles qui le font avancer
devront être sauvegardées. Etant donné votre place limité dans le fichier MEM$,
je vous conseille de faire attention à ne sauvegarder que les variables utiles.
Par exemple on pourra retenir les points de vie, les points d'expérience,
les repères du jeu comme le chapitre ou autre, ...
Pour résumer, MEM$ aura pour valeur toutes les variables que vous voulez à la suite
des unes des autres.
On l'écrira de cette façon :
MEM$=VARIABLE1$+VARIABLE2$+VARIABLE3$
MEM$=MEM$+VARIABLE4$+VARIABLE5$+...
Mais les variables numériques devront être transformées en alphanumériques avant
d'être intégré dans MEM$. Pour cela on utilisera la fonction STR$().
Le problème qui se pose avec STR$() c'est quand la variable aura sa valeur qui
dépassera 9. Car le nombre de chiffres maximum qu'aura la variable est très important
pour la sauvegarde. C'est à vous de déterminer le maximum de chiffres de votre variable.
Ex: STR$(10)="10" ici ça va, STR$(09)="9" là soucis on voudrait "09"
Pour régler ça, on utilise la fonction LEN() pour savoir la longueur afin de pouvoir
rajouter le 0 sous certaine condition.
On fera donc :
X=9 <--La Variable X pourra atteindre 2 chiffres au maximum (ex:99), ici elle n'en a qu'1
IF LEN(STR$(X))==2 THEN MEM$=MEM$+STR$(X) <--Vérifie la longueur de X en condition
IF LEN(STR$(X))==1 THEN MEM$=MEM$+"0"+STR$(X) <--Ajout d'un zéro car X n'atteint pas son maximum de chiffres.
Une fois votre valeur de MEM$ terminée, il ne vous reste plus qu'à sauvegarder dans un fichier, pour cela faites:
SAVE"MEM:NomDeFichier"
II)CHARGEMENT
Maintenant que vous savez sauvegarder, il faut savoir comment charger votre sauvegarde.
Tout d'abord il va falloir charger votre fichier de sauvegarde dans la variable MEM$, pour cela:
LOAD"MEM:NomDeFichier" <-- La Variable MEM$ prend la valeur de votre fichier de sauvegarde
Maintenant il ne reste plus qu'à associer toutes les variables à leurs valeurs contenues dans MEM$.
Pour le faire, on utilisera les fonctions VAL() (pour les variables numériques) et MID$().
VAL() sert à transformer une valeur alphanumérique en valeur numérique.
ex: VAL("009")=9
MID$(FICHIER$,positiondumot,longueurdumot) renvoie le mot (ou chaine de caractères)
contenue dans la variable FICHIER$, à la position à déterminer dans FICHIERS$ et ayant une longueur à déterminer.
Ex:
'MEM$="FirstDeuxTroisQuatro...AvantX99Fin" <--Exemple(la position commence par 0)
VARIABLE1$=MID$(MEM$,0,5) <--Sa valeur sera "First"
VARIABLE2$=MID$(MEM$,5,4) <--Sa valeur sera "Deux"
...
X=VAL(MID$(MEM$,55,2) <--Sa valeur sera 99
Voilà vous avez compris comment on charge.
III)CONCLUSION
Sauvegarder avec MEM$ reste facile à comprendre, mais si vous n'avez pas tout compris
ou que quelque chose vous paraît pas clair, n'hésitez pas à poser votre question.
Sachez qu'il existe d'autres moyens pour créer des sauvegardes comme la technique du GRP, mais ceci est une autre histoire.
Maintenant passez à la pratique !!
S'il y a une erreur, prière de me le signaler.
Merci d'avoir lu ^^.
Bienvenue dans le tutoriel de sauvegarde MEM$.
MEM$ est une variable système alphanumérique pouvant contenir 256 caractères. (merci pour la correction)
Elle est utilisée pour créer des sauvegardes et des chargements.
Mais avant de savoir comment sauvegarder votre fichier MEM$, il faut savoir le remplir.
I)MEM$ ET SAUVEGARDER
Votre jeu fonctionne grâce aux variables, et celles qui le font avancer
devront être sauvegardées. Etant donné votre place limité dans le fichier MEM$,
je vous conseille de faire attention à ne sauvegarder que les variables utiles.
Par exemple on pourra retenir les points de vie, les points d'expérience,
les repères du jeu comme le chapitre ou autre, ...
Pour résumer, MEM$ aura pour valeur toutes les variables que vous voulez à la suite
des unes des autres.
On l'écrira de cette façon :
MEM$=VARIABLE1$+VARIABLE2$+VARIABLE3$
MEM$=MEM$+VARIABLE4$+VARIABLE5$+...
Mais les variables numériques devront être transformées en alphanumériques avant
d'être intégré dans MEM$. Pour cela on utilisera la fonction STR$().
Le problème qui se pose avec STR$() c'est quand la variable aura sa valeur qui
dépassera 9. Car le nombre de chiffres maximum qu'aura la variable est très important
pour la sauvegarde. C'est à vous de déterminer le maximum de chiffres de votre variable.
Ex: STR$(10)="10" ici ça va, STR$(09)="9" là soucis on voudrait "09"
Pour régler ça, on utilise la fonction LEN() pour savoir la longueur afin de pouvoir
rajouter le 0 sous certaine condition.
On fera donc :
X=9 <--La Variable X pourra atteindre 2 chiffres au maximum (ex:99), ici elle n'en a qu'1
IF LEN(STR$(X))==2 THEN MEM$=MEM$+STR$(X) <--Vérifie la longueur de X en condition
IF LEN(STR$(X))==1 THEN MEM$=MEM$+"0"+STR$(X) <--Ajout d'un zéro car X n'atteint pas son maximum de chiffres.
Une fois votre valeur de MEM$ terminée, il ne vous reste plus qu'à sauvegarder dans un fichier, pour cela faites:
SAVE"MEM:NomDeFichier"
II)CHARGEMENT
Maintenant que vous savez sauvegarder, il faut savoir comment charger votre sauvegarde.
Tout d'abord il va falloir charger votre fichier de sauvegarde dans la variable MEM$, pour cela:
LOAD"MEM:NomDeFichier" <-- La Variable MEM$ prend la valeur de votre fichier de sauvegarde
Maintenant il ne reste plus qu'à associer toutes les variables à leurs valeurs contenues dans MEM$.
Pour le faire, on utilisera les fonctions VAL() (pour les variables numériques) et MID$().
VAL() sert à transformer une valeur alphanumérique en valeur numérique.
ex: VAL("009")=9
MID$(FICHIER$,positiondumot,longueurdumot) renvoie le mot (ou chaine de caractères)
contenue dans la variable FICHIER$, à la position à déterminer dans FICHIERS$ et ayant une longueur à déterminer.
Ex:
'MEM$="FirstDeuxTroisQuatro...AvantX99Fin" <--Exemple(la position commence par 0)
VARIABLE1$=MID$(MEM$,0,5) <--Sa valeur sera "First"
VARIABLE2$=MID$(MEM$,5,4) <--Sa valeur sera "Deux"
...
X=VAL(MID$(MEM$,55,2) <--Sa valeur sera 99
Voilà vous avez compris comment on charge.
III)CONCLUSION
Sauvegarder avec MEM$ reste facile à comprendre, mais si vous n'avez pas tout compris
ou que quelque chose vous paraît pas clair, n'hésitez pas à poser votre question.
Sachez qu'il existe d'autres moyens pour créer des sauvegardes comme la technique du GRP, mais ceci est une autre histoire.
Maintenant passez à la pratique !!
S'il y a une erreur, prière de me le signaler.
Merci d'avoir lu ^^.
Dernière édition par J8B le Ven 18 Avr - 20:29, édité 3 fois
Re: [Tutoriel]Sauvegarde avec MEM$
Merci beaucoup, ça me sera utile quand j'aurai tout assimilé.
Après l'avoir relu 10 fois et tester une centaines de commandes, je réussirais !!!
Après l'avoir relu 10 fois et tester une centaines de commandes, je réussirais !!!
Re: [Tutoriel]Sauvegarde avec MEM$
Tes sous-tutos ? Pas au courant de ça. Faut dire que je n'ai pas lu tous les tutos du forum tant que je n'en ai pas l'utilité. Et puis on me l'a demandé, après j'ai regardé dans "Réservations des annonces de tuto" et rien de marqué, et le sujet des autres tutos ne me laissaient pas croire que quelqu'un l'avait déjà traité. Après tout ça, je me suis dis que je pouvais le faire.
Re: [Tutoriel]Sauvegarde avec MEM$
Yup le titre concerne les fichiers image, mais en "bonus" j'explique rapidement MEM.
On est pas d'accord sur le nombre de lettres qu'elle peut contenir...
On est pas d'accord sur le nombre de lettres qu'elle peut contenir...
Re: [Tutoriel]Sauvegarde avec MEM$
J'ai vu les deux écrit. 255 et 256 mais c'est probablement 256 qu'elle peut en contenir. Bien que 255, je l'ai vu sur le manuel de stratégie, mais je pense qu'ils ont compté en oubliant le 0.
Re: [Tutoriel]Sauvegarde avec MEM$
Attends, y'a un truc qui n'est pas clair : dans STR$ tu mets un nombre alors que tu parles de transformer une variable numérique en variable charactère?
Re: [Tutoriel]Sauvegarde avec MEM$
En fait STR$ transforme un nombre ou la valeur d'une variable numérique en un mot.
Quand je dis variable c'est sous entendu sa valeur.
Quand je dis variable c'est sous entendu sa valeur.
Re: [Tutoriel]Sauvegarde avec MEM$
Autant compter le "0" en parlant du binaire je veux bien, mais quitte à faire un tableau de caractères, autant faire des puissances de 2 directement... J'essayerai en tout cas.
On a l'erreur String too long des fois, mais pour plus de 260 je pense...
fenixelf : comme il l'explique c'est la valeur qu'on convertit, pas la variable. Si tu veux avoir une variable de type nombre sous forme de variable de type chaîne, fais MYVAR$=STR$(MYVAR). Tu conserveras les deux variables, mais tu les auras sous les deux formats !
On a l'erreur String too long des fois, mais pour plus de 260 je pense...
fenixelf : comme il l'explique c'est la valeur qu'on convertit, pas la variable. Si tu veux avoir une variable de type nombre sous forme de variable de type chaîne, fais MYVAR$=STR$(MYVAR). Tu conserveras les deux variables, mais tu les auras sous les deux formats !
Re: [Tutoriel]Sauvegarde avec MEM$
Ooook... merci bien. Cependant, j'ai besoin d'énormément de temps pour comprendre (ce qui est bien c'est que quand j'ai compris, je retiens sur le bout des doigts). Du coup...
Si je veux stocker (imaginons) HP=120 ; NAME$=CHRIS ; X=241 ; Y=83 dans MEM$ J'écrirais :
Si c'est pas ça, pourrais tu me corriger?
Si je veux stocker (imaginons) HP=120 ; NAME$=CHRIS ; X=241 ; Y=83 dans MEM$ J'écrirais :
- Code:
HP$=STR$(HP):X$=STR(X):Y$=STR(Y)
MEM$=HP$+NAME$+X$+Y$
SAVE "MEM:CHRPERS"
- Code:
LOAD "MEM:CHRPERS"
HP$=MID$(MEM$,0,3):NAME$=MID$(MEM$,3,5):X$=MID$(MEM$,8,3):Y$=MID$(MEM$,10,3)
HP=VAL(HP$):X=VAL(X$):Y=VAL(Y$)
Si c'est pas ça, pourrais tu me corriger?
Re: [Tutoriel]Sauvegarde avec MEM$
De 1 :
NAME$="CHRIS"
De 2 : dans HP$=STR$(HP):X$=STR*(X):Y$=STR*(Y) il te manque des $ aux astérisques
De 3 : Si HP<100 ou <10, la taille va changer, il faudra utiliser la technique décrite dans le tuto. Donc LEN est le seul moyen de faire ce boulot. Et sache que mesurer des chaînes de caractères est très fréquent en programmation
Sinon bah tu peux retenir ça, c'est à peu près correct.
NAME$="CHRIS"
De 2 : dans HP$=STR$(HP):X$=STR*(X):Y$=STR*(Y) il te manque des $ aux astérisques
De 3 : Si HP<100 ou <10, la taille va changer, il faudra utiliser la technique décrite dans le tuto. Donc LEN est le seul moyen de faire ce boulot. Et sache que mesurer des chaînes de caractères est très fréquent en programmation
Sinon bah tu peux retenir ça, c'est à peu près correct.
Re: [Tutoriel]Sauvegarde avec MEM$
Quel serait le bout de code exact?
Ca me donnera beaucoup d'indications pour comprendre et généraliser à mes autres programmes.
Ca me donnera beaucoup d'indications pour comprendre et généraliser à mes autres programmes.
Re: [Tutoriel]Sauvegarde avec MEM$
LEN est super simple à comprendre, il te donne le nombre de caractère que comporte un mot.
HP=120 comporte 3 caractères, pour le savoir LEN(STR$(HP))
Le problème est si tes HP=99, il comporte que 2 caractères ce qui va décaler tout dans MEM$. C'est pour cela que tu dois ajouter un zéro.
HP$=STR$(HP):X$=STR(X):Y$=STR(Y)
IF LEN(HP$)==3 THEN MEM$=HP$
IF LEN(HP$)==2 THEN MEM$="0"+HP$
IF LEN(HP$)==1 THEN MEM$="00"+HP$
MEM$=MEM$+NAME$+X$+Y$
Bien sûr si les variables NAME$, X$ et Y$ peuvent avoir une longueur de caractères différents, faudra le vérifier et agir en conséquence.
HP=120 comporte 3 caractères, pour le savoir LEN(STR$(HP))
Le problème est si tes HP=99, il comporte que 2 caractères ce qui va décaler tout dans MEM$. C'est pour cela que tu dois ajouter un zéro.
HP$=STR$(HP):X$=STR(X):Y$=STR(Y)
IF LEN(HP$)==3 THEN MEM$=HP$
IF LEN(HP$)==2 THEN MEM$="0"+HP$
IF LEN(HP$)==1 THEN MEM$="00"+HP$
MEM$=MEM$+NAME$+X$+Y$
Bien sûr si les variables NAME$, X$ et Y$ peuvent avoir une longueur de caractères différents, faudra le vérifier et agir en conséquence.
Re: [Tutoriel]Sauvegarde avec MEM$
OOOOOOOk... Tout s'éclaire, mais c'est vrai que j'ai souvent besoin qu'on me réexplique plusieurs fois sous des coutures différentes. Merci encore.
Re: [Tutoriel]Sauvegarde avec MEM$
C'est dingue, grâce à vous, je comprends tout le tutoooooo !
PSCHHHH.........BOOM !
Bref... Trop content.
PSCHHHH.........BOOM !
Bref... Trop content.
Re: [Tutoriel]Sauvegarde avec MEM$
Comment on fait les patch ?
Woni- Messages : 13
Date d'inscription : 11/11/2014
Re: [Tutoriel]Sauvegarde avec MEM$
Un patch est un petit programme qui sert à corriger les bugs ou à modifier une langue d'un autre programme spécifique. C'est très courant sur PC, mais impossible à faire sur PetitComputer.
Re: [Tutoriel]Sauvegarde avec MEM$
Ah et oui, impossible de faire réagir un programme sur un autre dans PTC...
Re: [Tutoriel]Sauvegarde avec MEM$
Mut mut!
hmmm! Il existe bien une commande pour effacer tout une ligne grace à son numéro?! Et ensuite la réécrire!
Donc... Ce serais possible d'appeler avec une ligne de code en "édite" un fichier qui contient les nouvelles lignes de codes et le numéro des anciennes à effacer...
Menfin vous voyez!
Une sorte de patch quoi avec quelque manip en édite!
Non?
hmmm! Il existe bien une commande pour effacer tout une ligne grace à son numéro?! Et ensuite la réécrire!
Donc... Ce serais possible d'appeler avec une ligne de code en "édite" un fichier qui contient les nouvelles lignes de codes et le numéro des anciennes à effacer...
Menfin vous voyez!
Une sorte de patch quoi avec quelque manip en édite!
Non?
CounterClockWize- Messages : 72
Date d'inscription : 23/08/2013
Re: [Tutoriel]Sauvegarde avec MEM$
Non elle n'existe pas cette commande sur Petit Computer. C'est dommage mais c'est comme ça.
Page 1 sur 2 • 1, 2
Page 1 sur 2
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum