Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Autres questions


Index du Forum » Autres questions » Problèmes SDK divers et variés
Theprog Hors ligne Membre Points: 1447 Défis: 20 Message

Problèmes SDK divers et variés

Posté le 26/10/2013 11:00

Salut j'ai fait un petit programme mais je comprends pas pourquoi la fonction Print ne veut pas afficher la chaine que je lui demande ...

Le code
Cliquer pour enrouler
#include "fxlib.h"
#include "stdio.h"

unsigned int key;
int caractere, caractere2;
char chaine[21];
char ident[21];
char domaine[30];
char mdp[30];
char destinataire[40];
char sujet[30];
char corps[50];


int AddIn_main(int isAppli, unsigned short OptionNum){
    Bdisp_AllClr_DDVRAM();
    demmarage();
    identif();
    
    return 1;
}

demmarage(){
    int key;
    Bdisp_AllClr_DDVRAM();
    PrintMini(80,58,"Version 1.0",0);
    Bdisp_DrawLineVRAM(10,10,10,50);
    Bdisp_DrawLineVRAM(10,50,117,50);
    Bdisp_DrawLineVRAM(117,50,117,10);
    Bdisp_DrawLineVRAM(10,10,117,10);
    Bdisp_DrawLineVRAM(10,10,63,25);
    Bdisp_DrawLineVRAM(117,10,63,25);
    locate(7,5);
    Print("Messagerie");
    do{
        GetKey(&key);
    } while(key != 30004);
    
    Bdisp_AllClr_DDVRAM();
}

identif(){
    Bdisp_AllClr_DDVRAM();
    locate(1,1);
    Print("Identifiant:");
    locate(1,2);
    Print("+------------------+");
    locate(1,3);
    Print("|                  |");
    locate(1,4);
    Print("+------------------+");
    remplichaine();
    
    caractere2=0;
    do{
        caractere2++;
        ident[caractere2] = chaine[caractere2];
    } while(caractere2+1 != caractere);
    ========================== > ICI < ========
    locate(2,3);
    Print(ident);
    do{
        GetKey(&key);
    } while(key != 30004);
    
}

remplichaine(){
    caractere=0;
    do{
        caractere++;
    ======================= > ET ICI < ========
        locate(2,3);
        Print(chaine);
        GetKey(&key);
        //==========Conversion==========
        if (key==48)key= 71;
        if (key==46)key= 61;
        if (key==15)key= 51;
        if (key==135)key= 41;
        if (key==30004)key= 31;
        if (key==49)key= 72;
        if (key==50)key= 62;
        if (key==51)key= 52;
        if (key==137)key= 42;
        if (key==153)key= 32;
        if (key==52)key= 73;
        if (key==53)key= 63;
        if (key==54)key= 53;
        if (key==169)key= 43;
        if (key==185)key= 33;
        if (key==55)key= 74;
        if (key==56)key= 64;
        if (key==57)key= 54;
        if (key==30025)key= 44;
        if (key==30015)key= 34;
        if (key==187)key= 75;
        if (key==30046)key= 65;
        if (key==40)key= 55;
        if (key==41)key= 45;
        if (key==44)key= 35;
        if (key==14)key= 25;
        if (key==30001)key= 76;
        if (key==149)key= 66;
        if (key==133)key= 56;
        if (key==129)key= 46;
        if (key==130)key= 36;
        if (key==131)key= 26;
        if (key==30007)key= 77;
        if (key==205)key= 67;
        if (key==168)key= 57;
        if (key==30002)key= 47;
        if (key==30023)key= 37;
        if (key==30021)key= 27;
        if (key==30006)key= 78;
        if (key==30008)key= 68;
        if (key==30016)key= 58;
        if (key==30020)key= 38;
        if (key==30018)key= 28;
        if (key==30009)key= 79;
        if (key==30010)key= 69;
        if (key==30011)key= 59;
        if (key==30012)key= 49;
        if (key==30013)key= 39;
        if (key==30014)key= 29;
        //==============================
        if(key==31)caractere=19;
        if(key==76)chaine[caractere]='a';
        if(key==66)chaine[caractere]='b';
        if(key==56)chaine[caractere]='c';
        if(key==46)chaine[caractere]='d';
        if(key==36)chaine[caractere]='e';
        if(key==26)chaine[caractere]='f';
        if(key==75)chaine[caractere]='g';
        if(key==65)chaine[caractere]='h';
        if(key==55)chaine[caractere]='i';
        if(key==45)chaine[caractere]='j';
        if(key==35)chaine[caractere]='k';
        if(key==25)chaine[caractere]='l';
        if(key==74)chaine[caractere]='m';
        if(key==64)chaine[caractere]='n';
        if(key==54)chaine[caractere]='o';
        if(key==73)chaine[caractere]='p';
        if(key==63)chaine[caractere]='q';
        if(key==53)chaine[caractere]='r';
        if(key==43)chaine[caractere]='s';
        if(key==33)chaine[caractere]='t';
        if(key==72)chaine[caractere]='u';
        if(key==62)chaine[caractere]='v';
        if(key==52)chaine[caractere]='w';
        if(key==42)chaine[caractere]='x';
        if(key==32)chaine[caractere]='y';
        if(key==71)chaine[caractere]='z';
        if(key==61)chaine[caractere]='.';
        if(key==57)chaine[caractere]='@';
    } while(caractere!=19);
    
    if(key==31)chaine[caractere]='\0';
    if(key!=31)chaine[caractere+1]='\0';
}


#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


la chaine ident fait 21 caracteres


Précédente 1, 2, 3 ··· 10 ··· 20, 21, 22, 23


aclec Invité

Citer : Posté le 10/10/2015 22:54 | #


Ok merci


aclec Invité

Citer : Posté le 10/10/2015 22:59 | #


J ai réussi !!!! je sais pas trop comment mais c'est bon

Ajouté le 28/03/2016 à 18:24 :
Bonjour comment puis-je clear qu une seule partie de l écran svp
Fife86 Hors ligne Membre Points: 830 Défis: 0 Message

Citer : Posté le 28/03/2016 18:29 | #


Assez simple, si tu utilise la librairie Monochromelib, il suffit d'afficher un rectangle blanc à l'endroit ou tu veux clear.

ML_rectangle(x1,y1,x2,y2,ML_WHITE,ML_WHITE);
It's Show Time !!!
Mes Jeux :
- Street Fighter : Pour les accrocs du free-fight.
- Kirby's DreamLand : Gobe , Gobe , Gobe !!!
- L'invasion Seanchans : Détruit la flotte ennemis a bord du "Danseur des vagues".


< Le recoin du C-Engine >
Aclec Hors ligne Membre Points: 5 Défis: 0 Message

Citer : Posté le 28/03/2016 18:32 | #


Merci, je n y vais pas penser, j avais essayer avec la lib Disp.c mais ça ne foctionnait pas, merci
Dark storm Hors ligne Labélisateur Points: 11549 Défis: 176 Message

Citer : Posté le 28/03/2016 18:32 | #


Je tiens aussi à préciser qu'en C, contrairement au Basic, tu peux (et c'est souvent qu'on le fait) redessiner tout l'écran à chaque frame.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Aclec Hors ligne Membre Points: 5 Défis: 0 Message

Citer : Posté le 28/03/2016 18:36 | #


C'est ce que je fais, mais j ai des lettres qui s affichent et que je n ai par la suite plus en mémoire, je créer un "messenger"

Ajouté le 07/02/2017 à 19:38 :
Bonjour, je n arrive pas à utiliser de classes. Comment faire pour que le sdk les reconnaissent ?
Lephenixnoir Hors ligne Administrateur Points: 21398 Défis: 149 Message

Citer : Posté le 07/02/2017 19:39 | #


Il faut tout enregistrer dans des fichiers C++ (i.e .cpp) et adapter les déclarations nécessaires avec extern "C" { }.

Attention les strings ne sont pas totalement supportés ni garantis de fonctionner, et les vector ne le sont pas du tout. En fait il n'y a pas du tout de STL, seulement les mécanismes usuels du C++.
Aclec Hors ligne Membre Points: 5 Défis: 0 Message

Citer : Posté le 07/02/2017 19:55 | #


Pourrais tu me donner un code basique avec un objet dedans stp ?
Lephenixnoir Hors ligne Administrateur Points: 21398 Défis: 149 Message

Citer : Posté le 07/02/2017 20:06 | #


Voici un programme que tu devrais pouvoir compiler sans problème avec le fx-9860G SDK. Il contient tout le code nécessaire au projet (enfin, si je me suis pas trompé, et si mes compétences en C++ ont résisté au passage du temps...) :

#include <fxlib.h>
#include <string.h>
#include <stdlib.h>

class String
{
public:
    String(void): contents(NULL)
    {
    }
    String(const char *source): String()
    {
        load(source);
    }
    ~String(void)
    {
        if(contents) free(contents);
    }

    char *raw_data(void)
    {
        return contents;
    }

    void load(const char *source)
    {
        if(contents) free(contents);
        contents = (char *)malloc(strlen(source) + 1);
        if(!contents) return;
        strcpy(contents, source);
    }

private:
    char *contents;
};

int main(int isAppli, unsigned short OptionNum)
{
    String s("Hello, World!");
    unsigned int key;

    Bdisp_AllClr_VRAM();
    locate(2, 2);
    Print((unsigned char *)s.raw_data());

    while(1) GetKey(&key);
    return 1;
}

// Ne touche pas a ce qui suit, il faut juste le laisser ici tranquille

extern "C" {

int AddIn_main(int isAppli, unsigned short OptionNum)
{
    return main(isAppli, OptionNum);
}

#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

} // extern "C"
Précédente 1, 2, 3 ··· 10 ··· 20, 21, 22, 23

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 v42 © créé par Neuronix et Muelsaco 2004 - 2022 | Il y a 76 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