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 - Projets de programmation


Index du Forum » Projets de programmation » manipulation de ficher en c
Nematan Hors ligne Membre Points: 82 Défis: 0 Message

manipulation de ficher en c

Posté le 30/05/2012 19:58

voila pour le système de sauvegarde de mon prochain add-in j'ai besoin de manipuler des fichiers . J'ai donc fais ce code pour tester la création d'un fichier
void sauvegardeMap()
{
FONTCHARACTER nomSave[4]={'S','O','V','E'};
int check;
int handleCreation =-1;
int handle;
char i[5]={'s','a','l','u','t'};
handleCreation =Bfile_OpenFile(nomSave,_OPENMODE_WRITE);
if(handleCreation<0)
{
check=Bfile_CreateFile(nomSave,10);
}
else
{
check=1;
}
if(check>=0)
{
ML_clear_vram();
locate(1,1);
Print("ok");
ML_display_vram();
}
Bfile_CloseFile(handleCreation);
while(1)
{

}
}


et le problème c'est que ça marche pas >< donc voila j'attend votre aide (une fois de plus ) merci d'avance


1, 2 Suivante
Pierrotll Hors ligne Ancien administrateur Points: 5488 Défis: 41 Message

Citer : Posté le 30/05/2012 20:33 | #


Faisons un petit tour dans la documentation.

If you open a file in Storage Memory, the pathname to the file is the following string.
FONTCHARACTER PathName[]={'\\','\\','f','l','s','0','\\','f','i','l','e','n','a','m','e','.','e','x','t',0};
The root directory (\\fls0\) means Storage Memory area. This name is fixed.
If you open a file in SD card, the pathname to the file is the following string.
FONTCHARACTER PathName[]={'\\','\\','c','r','d','0','\\','f','i','l','e','n','a','m','e','.','e','x','t',0};
The root directory (\\crd0\) means SD card area. This name is fixed.

Nematan Hors ligne Membre Points: 82 Défis: 0 Message

Citer : Posté le 30/05/2012 20:41 | #


aaaaaaahhhh bah j'avais essayé avec le chemin d’accès mais dans la doc les slash s'affichaient "¥¥" donc ça marchait pas ..
casio Graph35+USB modifié 8)

Dark storm En ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 30/05/2012 21:43 | #


Sur un pdf il t'affiche ¥ ça ?
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Eiyeron Hors ligne Ancien modérateur Points: 5525 Défis: 57 Message

Citer : Posté le 30/05/2012 21:55 | #


Oui, erreur d'encodage, j'ai subi le même problème moi aussi
Nematan Hors ligne Membre Points: 82 Défis: 0 Message

Citer : Posté le 30/05/2012 22:20 | #


J'ai même pas pensé à vérifier l'encodage du PDF ><
casio Graph35+USB modifié 8)

Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 31/05/2012 00:31 | #


merci (mais pas pour le mêmes raisons ni adressé a la même personne )
j'avais justement besoins d'un programme de sauvegarde pour mon minecraft, et je galérais a en faire un
Mes Programmes
Cliquer pour enrouler
-en basic: un programme nommé PICFMLIM convertissant une picture en code basic.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed


-mon tuto sur les Str


Mes calto: G25+, G75
Mon minecraft en dévelopement


Projets et Programmes que je soutiens (sur une idée de Marmotti)
Cliquer pour enrouler
-Pokemon Jade de Dodormeur
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Louloux Hors ligne Ancien administrateur Points: 7035 Défis: 61 Message

Citer : Posté le 31/05/2012 16:47 | #


J'en ai fait un pour angry birds qui est performant et pratique : il permet de modifier à souhait le fichier de sauvegarde et de le lire sans erreur, et s'adapte à tout jeu. Si ça t'intéresse MP
Nitrosax Hors ligne Ancien rédacteur Points: 1061 Défis: 17 Message

Citer : Posté le 31/05/2012 20:25 | #


Au fait Louloux, tu le sorts quand ton jeu ?
Louloux Hors ligne Ancien administrateur Points: 7035 Défis: 61 Message

Citer : Posté le 31/05/2012 22:09 | #


Le mois prochain comme ça j'aurai le temps de le soigner.
Nematan Hors ligne Membre Points: 82 Défis: 0 Message

Citer : Posté le 31/05/2012 23:35 | #


faut pas que je sorte mon "motherload " en même temps , ton jeu vas trop eclipser sa sortie :')
casio Graph35+USB modifié 8)

Louloux Hors ligne Ancien administrateur Points: 7035 Défis: 61 Message

Citer : Posté le 01/06/2012 19:39 | #


Ne t'inquiète pas je teste TOUS les add-ins qui sortent sur Graph 75/85/95 (SD) sur le site, et je pense que pas mal de gens font de même.
De plus, mon jeu n'est pas mirobolant, c'est un simple angry birds adapté comme j'ai pu.
Et puis normalement tu as encore une grosse semaine avant que je le sorte.
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 14/07/2012 16:40 | #


je re-up un peux le topic car j'avais une question sur la manipulation de fichier:

-A quelle vitesse est lu une information sur un fichier de type .txt (fichier par défaut pour l'encodage d'information, je crois). Je vous le demande car aujourd'hui, mon minecraft pour calculatrice a dépassé le seuil des 100.000 float et je ne peux plus stocker d'information, je cherche a trouver une alternative satisfesante.
Mes Programmes
Cliquer pour enrouler
-en basic: un programme nommé PICFMLIM convertissant une picture en code basic.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed


-mon tuto sur les Str


Mes calto: G25+, G75
Mon minecraft en dévelopement


Projets et Programmes que je soutiens (sur une idée de Marmotti)
Cliquer pour enrouler
-Pokemon Jade de Dodormeur
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Pierrotll Hors ligne Ancien administrateur Points: 5488 Défis: 41 Message

Citer : Posté le 14/07/2012 17:39 | #


La fonction Bfile_ReadFile est très lente, il ne faut surtout pas l'utiliser in-game.
A la limite on peut utiliser un fichier en mémoire principale pour stocker des données temporairement, mais pas pour des variables utilisées fréquemment dans des calculs.
C'est pas normal que t'utilises autant de mémoire.
Louloux Hors ligne Ancien administrateur Points: 7035 Défis: 61 Message

Citer : Posté le 14/07/2012 18:03 | #


100000 octets en float ou 100000 nombres flottants ? Tu peux pas économiser certains en changeant le type ?
C''est gourmand un float. Et utiliser les fichiers est effectivement trop lent pour un jeu qui est en plus en 3D...
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 14/07/2012 23:09 | #


je voulais dire que toute la mémoire était prise.

un cube dans ce moteur 3D que j'ai mit au point prend 24 float pour les coordonnées des sommets, s'il y en a 200, on a 24*200=4800 float, sans compter le personnage (6 cubes, soit 6*24=144 float supplémentaires), les matrices de rotation (3*3=9 float) ainsi que le cache du chunk (10*10*10=1000 unsigned char), les textures (matrices avec décomprésseur, 2*8=16 unsigned char), les variables "libres" utiles pour les boucles et autres (pas loin de 20 int et 30 float), et j'en passe...

(petit récapitulatif:
-4983 float
-20 int
-1016 unsigned char/char
et je n'ai pas compté toutes les variables de mon programme, c'est une aproximation)

A la fin, on dépasse la limite des 0x2000 octets de stockage limites de la RAM de la calculatrice.

Ajouté le 14/07/2012 à 23:11 :
mais en utilisant une astuce dérivant de la librairie \"fixe\" de pierotLL, je compte optimiser le code
Mes Programmes
Cliquer pour enrouler
-en basic: un programme nommé PICFMLIM convertissant une picture en code basic.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed


-mon tuto sur les Str


Mes calto: G25+, G75
Mon minecraft en dévelopement


Projets et Programmes que je soutiens (sur une idée de Marmotti)
Cliquer pour enrouler
-Pokemon Jade de Dodormeur
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Louloux Hors ligne Ancien administrateur Points: 7035 Défis: 61 Message

Citer : Posté le 15/07/2012 10:25 | #


24 float pour les coordonnées des sommets d'un cube ? Il n'y en a besoin que de 16 selon ma conception du cube.
Il y a moyen de réduire les textures aussi, mais va falloir baisser la qualité graphique.
Vebveb Hors ligne Membre Points: 797 Défis: 14 Message

Citer : Posté le 15/07/2012 11:37 | #


chaque sommet a 3 coordonées : x , y , z.
Il y a 8 sommets,... donc 24 float.

Ce que je ferais à ta place est de stocker des niveaux dans des fichiers externes que tu lis avec la librairie de lecture rapide de fichiers de la zone de stockage de Kristaba (ou tu copie le contenu dans un fichier dans la ram et tu utilises le contenu avec un pointeur comme en lua)
Pierrotll Hors ligne Ancien administrateur Points: 5488 Défis: 41 Message

Citer : Posté le 15/07/2012 14:44 | #


Oui, Kristaba avait refait un stdio standard pour g85. Comme il n'avait aucune garantie de compatibilité future, il a préféré ne faire que la partie lecture. Il s'avère que c'est beaucoup plus rapide qu'avec Bfile_ReadFile.
Ce projet est resté à l'état d'ébauche et de test, mais la lecture de fichier fonctionne, et si ça intéresse quelqu'un je peux le fournir.
Nitrosax Hors ligne Ancien rédacteur Points: 1061 Défis: 17 Message

Citer : Posté le 15/07/2012 21:41 | #


un cube dans ce moteur 3D que j'ai mit au point prend 24 float pour les coordonnées des sommets, s'il y en a 200, on a 24*200=4800 float

Si tous les objets que tu affiches sont des cubes, pourquoi est-ce que tu ne stockes pas les coordonnées de chaque cube dans ta matrice plutôt que de conserver les coordonnées de tous les points ? Tous tes objets étant identiques, il sera très simple de calculer les coordonnées de tous les points à partir des coordonnées des cubes.
Cela te ferait gagner beaucoup de place en mémoire (3 float au lieu de 24 si je ne m'abuse).
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 16/07/2012 03:44 | #


Si tous les objets que tu affiches sont des cubes, pourquoi est-ce que tu ne stockes pas les coordonnées de chaque cube dans ta matrice plutôt que de conserver les coordonnées de tous les points ?

c'est élas ce que je fait (mais ce qui prend du temps, c'est de passer dee la matrice aux coordonéees, j'ustement), et c'est justement beaucoup trop long, je suis en train de travailler sur une nouvelle méthode de calcul.

et en passant, je viens de faire un test comparatif entre des Int et des Float:
-addition et soustraction: même vitesse.
-multiplication, divisionn, etc...: les Int sont calculés 2 a 8 fois (en fonction du calcul a éffectuer) plus vite que les float.

C'est pourquoi je vais travailler (en m'inspirant, mais sans utiliser la lib de PierotLL sur les Fixes car j'ai des bug au niveau de la déclaration des fix) uniquement avec des int et des char.
Mes Programmes
Cliquer pour enrouler
-en basic: un programme nommé PICFMLIM convertissant une picture en code basic.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed


-mon tuto sur les Str


Mes calto: G25+, G75
Mon minecraft en dévelopement


Projets et Programmes que je soutiens (sur une idée de Marmotti)
Cliquer pour enrouler
-Pokemon Jade de Dodormeur
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
1, 2 Suivante

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 140 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