Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Autres questions


Index du Forum » Autres questions » [C][Prizm] lecture écriture fichier de sauvegarde
Lancelot Hors ligne Membre Points: 1274 Défis: 160 Message

[C][Prizm] lecture écriture fichier de sauvegarde

Posté le 31/12/2013 18:30

Bonsoir

Est-ce que quelqu'un pourrait m'expliquer comment fonctionne les fonctions de fichier de la prizm en c ? car je n'arrive pas à les faire fonctionner.


Dark storm Hors ligne Labélisateur Points: 11634 Défis: 176 Message

Citer : Posté le 31/12/2013 19:02 | #


Celles en C sur les Graph ne fonctionnent pas sur la Prizm ?
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Lancelot Hors ligne Membre Points: 1274 Défis: 160 Message

Citer : Posté le 31/12/2013 20:01 | #


peut-être je ne sais pas ?

sinon quelqu'un aurait un exemple précis et détaillé de =s fonctions à utiliser. il y a Gravity Duck mais je n'ai pas compris.
Calculatrices : Casio 35+ SH4 (modifiée 75) et fx-CG 20 PRIZM
Projets que je soutiens
Des exemples parmi tant d'autres
Pokémon Jade de Dododormeur
Zelda de Smashmaster
Super Geek Brothers de Siapran
Mes Programmes
Mes Programmes
Mes Projets
Mes Projets
ColorLib
Add-ins Jetpack Joyride et Pac-Man sur PRIZM (les 2 non commencés mais en réflexion)
A la recherche des sprites jetpack Joride si quelqu'un les a en couleur
Smashmaster Hors ligne Ancien modérateur Points: 4561 Défis: 253 Message

Citer : Posté le 31/12/2013 20:16 | #


Je vais essayer d'expliquer le plus clairement que possible

Déjà il faut inclure #include <BFILE_syscalls.h>

Ouvrir
Ouvrir


Pour ouvrir un fichier texte il faut utiliser la fonction Bfile_OpenFile_OS, cette fonction prend deux paramètres :
Le nom du fichier
le mode (2 pour lire, 0 pour écrire).
par exemple :

int file;
unsigned short filename[] = {'\\','\\','f','l','s','0','\\','Z','e','l','d','a','S','a','v','0','.','s','a','v',0};
file = Bfile_OpenFile_OS(filename,0); //si file>=0, alors l'ouverture s'est bien passé


le nom du fichier doit obligatoirement commencer par \\fls0\ et n'oublie pas '\0' (ou 0, c'est pareil) à la fin de cette chaîne



Lire
Lire


Pour lire un fichier texte il faut utiliser la fonction Bfile_ReadFile_OS, cette fonction prend quatre paramètres :
Le fichier (mais pas le nom du fichier, dans l'exemple précendent c'est 'file').
Le résultat sera stocké dans le deuxième paramètre (cette variable peut être de n'importe quel type, mais doit obligatoirement être une adresse)
Le nombre d'octet que tu veux lire :
Si tu veux lire un char, alors met sizeof (char).
Si tu veux lire une struture (exemple : struct tGraphe ), alors met sizeof(tGraphe).
la position de lecture en octet, si tu met -1 alors le programme continu à lire à l'endroit où se trouve 'le curseur'.
Par exemple :

struct tStructure resultat;
int file;
unsigned short filename[] = {'\\','\\','f','l','s','0','\\','Z','e','l','d','a','S','a','v','0','.','s','a','v',0};
file = Bfile_OpenFile_OS(filename,2); //si file>=0, alors l'ouverture s'est bien passé
if (file>=0)
{
    Bfile_ReadFile_OS(file,&resultat,sizeof(tStructure),-1);
}




Ecrire
Ecrire


Pour Ecrire dans un fichier texte il faut utiliser la fonction Bfile_WriteFile_OS, cette fonction prend trois paramètres :
Le fichier (mais pas le nom du fichier, dans l'exemple précendent c'est 'file').
La variable à enregistrer (cette variable peut être de n'importe quel type, mais doit obligatoirement être une adresse)
Le nombre d'octet que tu veux sauvegarder :
Si tu veux écrire dans le fichier un char, alors met sizeof (char).
Si tu veux écrire dans le fichier une structure (exemple : struct tGraphe ), alors met sizeof(tGraphe), on peut faire ça sans problème, même si la structure contient plein de variables/pointeurs.

Par exemple :

struct tStructure variableAEcrireDsFichier;
int file;
unsigned short filename[] = {'\\','\\','f','l','s','0','\\','Z','e','l','d','a','S','a','v','0','.','s','a','v',0};
file = Bfile_OpenFile_OS(filename,0); //si file>=0, alors l'ouverture s'est bien passé
if (file>=0)
{
    Bfile_WriteFile_OS(file,&variableAEcrireDsFichier,sizeof(tStructure));
}




Fermer
Fermer


Bfile_CloseFile_OS(file);



Supprimer fichier
Supprimer fichier


Bfile_DeleteEntry(nom du fichier);



Voilà, si t'as des questions n'hésite pas.
Lancelot Hors ligne Membre Points: 1274 Défis: 160 Message

Citer : Posté le 01/01/2014 12:27 | #


merci beaucoup de ce super tuto !

Je test dès maintenant !

Ajouté le 01/01/2014 à 19:12 :
J'ai deux question :
Comment créer le fichier ? et
Est-ce que le nom est limité à 8 lettres?
Calculatrices : Casio 35+ SH4 (modifiée 75) et fx-CG 20 PRIZM
Projets que je soutiens
Des exemples parmi tant d'autres
Pokémon Jade de Dododormeur
Zelda de Smashmaster
Super Geek Brothers de Siapran
Mes Programmes
Mes Programmes
Mes Projets
Mes Projets
ColorLib
Add-ins Jetpack Joyride et Pac-Man sur PRIZM (les 2 non commencés mais en réflexion)
A la recherche des sprites jetpack Joride si quelqu'un les a en couleur
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 01/01/2014 19:25 | #


Pour le créer, je crois qu'il existe une fonction Bfile_CreateEntry, et oui, c'est limité a 8 lettres (en tout cas sur 85, j'imagine que c'est la meme chose ici )
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm (dont je connais le nom, mais pas vous ) Arcuz !
Lancelot Hors ligne Membre Points: 1274 Défis: 160 Message

Citer : Posté le 01/01/2014 19:48 | #


J'ai un autre soucis
J'ai un autre soucis
C:/PrizmSDK-0.3/include/BFILE_syscalls.h:5:1: error: unknown type name 'FONTCHARACTER'
C:/PrizmSDK-0.3/include/BFILE_syscalls.h:5:70: error: unknown type name 'FONTCHARACTER'
C:/PrizmSDK-0.3/include/BFILE_syscalls.h:5:96: error: unknown type name 'FILE_INFO'
C:/PrizmSDK-0.3/include/BFILE_syscalls.h:6:1: error: unknown type name 'FONTCHARACTER'
C:/PrizmSDK-0.3/include/BFILE_syscalls.h:6:79: error: unknown type name 'FONTCHARACTER'
C:/PrizmSDK-0.3/include/BFILE_syscalls.h:6:105: error: unknown type name 'FILE_INFO'
C:/PrizmSDK-0.3/include/BFILE_syscalls.h:7:37: error: unknown type name 'FONTCHARACTER'
C:/PrizmSDK-0.3/include/BFILE_syscalls.h:7:63: error: unknown type name 'FILE_INFO'
C:/PrizmSDK-0.3/include/BFILE_syscalls.h:8:46: error: unknown type name 'FONTCHARACTER'
C:/PrizmSDK-0.3/include/BFILE_syscalls.h:8:72: error: unknown type name 'FILE_INFO'




Que faire ?

Calculatrices : Casio 35+ SH4 (modifiée 75) et fx-CG 20 PRIZM
Projets que je soutiens
Des exemples parmi tant d'autres
Pokémon Jade de Dododormeur
Zelda de Smashmaster
Super Geek Brothers de Siapran
Mes Programmes
Mes Programmes
Mes Projets
Mes Projets
ColorLib
Add-ins Jetpack Joyride et Pac-Man sur PRIZM (les 2 non commencés mais en réflexion)
A la recherche des sprites jetpack Joride si quelqu'un les a en couleur
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 01/01/2014 19:53 | #


tu doit mettre unsigned short et pas FONTCHARACTER pour le nom du fichier
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm (dont je connais le nom, mais pas vous ) Arcuz !
Smashmaster Hors ligne Ancien modérateur Points: 4561 Défis: 253 Message

Citer : Posté le 01/01/2014 20:06 | #


et dans le fichier BFile_syscall.h rajoute tout au début
typedef struct { unsigned short id, type; unsigned long fsize, dsize; unsigned int property; unsigned long address; } FILE_INFO;


Ajouté le 01/01/2014 à 20:14 :
Dodormeur a écrit :
c'est limité a 8 lettres
J'avais réussi à créer un fichier "Zeldasav1.sav" (9+4 caractères)

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 83 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd