Seuls les membres ayant 30 points peuvent parler sur le chat.

Forum Casio - Autres questions


Index du Forum » Autres questions » Une erreur que google ne connait pas sur Bfile :O
Ziqumu Hors ligne Membre d'honneur Points: 3052 Défis: 9 Message

Une erreur que google ne connait pas sur Bfile :O

Posté le 28/02/2012 17:45

Bonjour a tous, Bfile_WriteFile me return l'erreur -31, qui veut dire d'apprès la doc "IML_FILEERR_DEVICEERROR" et le problème se pose sur l'emulateur comme sur la calto. je vais vous expliquer un peu sur quoi je bosse pour que vous compreniez mieu le code qui est un peu sale actuellement. N'hesitez pas a me le dire si vous avez des idées pour améliorer aussi :P

je développe actuellement une methode pour pouvoir enregistrer des "images de l'écran" sur la memoire de la calto. Le but est que le fichier soit le plus petit possible donc j'utilise des char pour stocker les coordonnées.
- Le fichier commence donc par un char qui vaut 1 si la suite donne les coordonnées des point noir, ou 0 si c'est les coorodonées des points blanc.
- Pour tous les autres, lorsque le nombre est négatif c'est une ligne, et les nombres positifs suivant sont les colonnes des points que l'on cherche.


Bref voici le code en question


#include "fxlib.h"
#include "stdio.h"
//#include "revolution\revolution.h"
//#include "syscall.h"
//#include "generalfunc.h"

int AddIn_main(int isAppli, unsigned short OptionNum)
{
//init vars
    char test[300];
    int file;
    char chap;
    char stringPage[50];
    char screen[128][64] = {0};
    char x, y, pxmode, tempchar;
    unsigned short int nbrpixelsON, filesize; //nbrpixelsON:max 8182;moitie 4091
    FONTCHARACTER directory[] = {'\','\','f','l','s','0','\','c','o','u','r','s',0};
    FONTCHARACTER filename[] = {'\','\','f','l','s','0','\','c','o','u','r','s','\','t','e','s','t','h','.','g','a','h',0};

//contenu de l'ecran, lorsque c'est egal a 1, le point est noir, le reste est blanc
    screen[2][3]=1;
    screen[13][3]=1;
    screen[123][62]=1;
    
//compte le nombre de pixel noir et calcul de la taille du fichier
    nbrpixelsON=0;
    filesize=1;
    tempchar=0;
    for(y=0;y<=63;y++)
    {
        for(x=0;x<=127 && x>-10;x++)
        {
            if(screen[x][y]==1)
            {
                if(tempchar!=y)
                {
                    filesize++;
                    tempchar=y;
                }
                filesize++;
                nbrpixelsON++;
            }
        }
    }

//si plus de pixel noir que de blanc, mode blanc
    if(nbrpixelsON<4091){pxmode=1;}else{pxmode=0;}

//creation du dichier et du dossier
    Bfile_CreateDirectory(directory);
    Bfile_DeleteFile(filename);
    Bfile_CreateFile(filename, filesize);
    file = Bfile_OpenFile(filename, _OPENMODE_WRITE);
//remplissage
    Bfile_WriteFile(file, &pxmode, 1);
    tempchar=1;
    for(y=0;y>=-63;y--)
    {
        for(x=0;x<=127 && x>-10;x++)
        {
            if(screen[x][y*-1]==1)
            {                
                if(tempchar!=y)
                {
                    tempchar=Bfile_WriteFile(file, &y, 1);
                    tempchar=y;
                }
                Bfile_WriteFile(file, &x, 1);
            }
        }
    }
//fermeture
    Bfile_CloseFile(file);

    
//lecture
            //    int file;
            //FONTCHARACTER filename[] = {'\','\','f','l','s','0','\','Z','i','q','G','y','v','e','r','\','M','a','t','h','s','.','s','a','v',0};
    file = Bfile_OpenFile(filename, _OPENMODE_READ);
    if(file>=0) {
        Bfile_ReadFile(file, &chap, 1,0);
        Bfile_ReadFile(file, &test[0], 1,1);
        Bfile_ReadFile(file, &test[1], 2,2);
        Bfile_ReadFile(file, &test[2], 2,3);
        Bfile_ReadFile(file, &test[3], 1,4);    
        Bfile_ReadFile(file, &test[4], 1,5);    
        Bfile_CloseFile(file);
    }
    //ecriture a l'ecran
    Bdisp_AllClr_DDVRAM();
    sprintf(stringPage, "%d.%d.%d.%d.%d",chap,test[0],test[1],test[2],test[3]);
    PrintMini(0,59,(unsigned char*)stringPage,MINI_OVER);//resultat de la lecture : 1.-1.-1.-1.-1
    PrintMini(0,53,(unsigned char*)"1.-3.2.13.-62.123",MINI_OVER); // ce qu'il devrait renvoiyer : 1.-3.2.13.-62.123
    Bdisp_PutDisp_DD();
    //sleep pour voir l'ecran
    Sleep(5000);
    return 1;
}


#pragma section _BR_Size
unsigned long BR_Size;
#pragma section
#pragma section _TOP
int InitializeSystem(int isAppli, unsigned short OptionNum)
{
    return INIT_ADDIN_APPLICATION(isAppli, OptionNum);
}
#pragma section


Merci d'avance si vous pouvez m'aider



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
Pour coloriser votre code, cliquez ici.
Sinon cliquez sur le bouton ci-dessous.
: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 v42 © créé par Neuronix et Muelsaco 2004 - 2020 | Il y a 58 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