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 » Addin problème pour afficher les nombres
Wolfm Hors ligne Membre Points: 9 Défis: 0 Message

Addin problème pour afficher les nombres

Posté le 04/08/2015 17:55

Bonjours à toute la communauté !!!
Je programme depuis quelques temps avec SDK pour un projet d'addin, mais pour le moment je bidouille plus qu'autre chose.. Mais voilà, je sais à présent utiliser la mémoire, les fichiers, et les diverses fonctions d'affichages à l'écran graphique. Mais voilà, gros problème, je suis incapable d'afficher un simple nombre à l'écran, j'utilise < Print() > mais ça ne fonctionne qu'avec les tableaux de caractères... Quelqu'un aurait-t-il une petite réponse .. Merci d'avance !!


Eltoredo Hors ligne Modérateur Points: 4299 Défis: 35 Message

Citer : Posté le 04/08/2015 17:57 | #


Salut ! Tu peux utiliser :

PrintMini(X,Y,"MESSAGE",0);


Si je me trompe pas, pour afficher ce que tu veux, il y a d'autres fonctions mais c'est celle que j'utilise tout le temps

Les librairies varient un petit peu entre le C que tu utilises habituellement et le C pour les calculatrices

Pour les fonctions d'affichages, je te propose d'aller voir la librairie MonochromeLib de Pierrotll : http://www.planet-casio.com/Fr/forums/topic9349-1-%5BSDK%5D-MonochromeLib---une-lib-graphique-monochrome.html
La procrastination est une vertu. (voir ma description pour comprendre mon raisonnement)
Wolfm Hors ligne Membre Points: 9 Défis: 0 Message

Citer : Posté le 04/08/2015 18:24 | #


Merci beaucoup pour ta réponse aussi rapide !!
J'ai en effet essayé cette fonction cependant elle prend en paramètre un tableau de caractères.. je voudrais par exemple faire ceci (si cette fonction fonctionnait) :

int nombre=3;
PrintMini(X, Y, nombre, 0);

Mais le compilateur ne veux pas..

Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 04/08/2015 18:31 | #


Salut !

Si je me souviens bien, voici le prototype de PrintMni :
PrintMini(int,int,char*,int);


Tu ne peux pas mettre un entier la ou PrintMini te demande une chaîne de caractères. Voilà donc ce que nous allons faire :


int nombre = 3;
char string[10];
sprintf(string,"%d",nombre):  // On met le nombre dans une chaine de caracteres
PrintMini(X,Y,string,0):


Voir la doc de sprintf
Et les paramètres possibles

Bonne soirée
1337
Wolfm Hors ligne Membre Points: 9 Défis: 0 Message

Citer : Posté le 04/08/2015 18:36 | #


Merci beaucoup à vous deux !! Je test ça tout de suite !
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 04/08/2015 18:38 | #


J'ai oublié de le précisé, mais c'est visible dans la doc. Il ne faut pas que tu oublies :
#include <stdio.h>

Sans ça, ça ne marchera pas
1337
Wolfm Hors ligne Membre Points: 9 Défis: 0 Message

Citer : Posté le 04/08/2015 18:42 | #


Enorme merci ça fonctionne !! Voici le code source fonctionnel pour les intéressés !!


Ajouté le 04/08/2015 à 18:43 :
#include "fxlib.h"
#include <stdio.h>

int AddIn_main(int isAppli, unsigned short OptionNum)
{    

    /* Declaration des variables */

    int nombre = 3;
    char string[10];

    /* Programme */

       Bdisp_AllClr_DDVRAM();

    sprintf(string,"%d",nombre);
    PrintMini(3,3,string, 0);


        while(1){
                GetKey(&key);
        }
    
       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
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 04/08/2015 18:49 | #


Tu peux utiliser la balise code pour que ce soit un peu plus lisible (il y a une petite option pour modifier ton post )
1337
Wolfm Hors ligne Membre Points: 9 Défis: 0 Message

Citer : Posté le 04/08/2015 19:05 | #


Je suis un peu nouveau désolé Test..

#include "fxlib.h"
#include <stdio.h>

int AddIn_main(int isAppli, unsigned short OptionNum)
{

/* Declaration des variables */

int nombre = 3;
char string[10];

/* Programme */

Bdisp_AllClr_DDVRAM();

sprintf(string,"%d",nombre);
PrintMini(3,3,string, 0);


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

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


Ajouté le 04/08/2015 à 19:06 :
Oui c'est mieux en effet ! Merci et bonne soirée !!
Eltoredo Hors ligne Modérateur Points: 4299 Défis: 35 Message

Citer : Posté le 04/08/2015 19:09 | #


J'avais oublié le "const unsigned char*" mais moi, c'était pour afficher du texte ou des chiffres mais pas la valeur d'une variable, dans ce cas là, suis les conseils de Xavier, c'est plus compliqué que d'afficher un morceau de texte
La procrastination est une vertu. (voir ma description pour comprendre mon raisonnement)
Ninestars Hors ligne Membre Points: 2451 Défis: 24 Message

Citer : Posté le 04/08/2015 22:40 | #


int nombre = 3;
char string[4]; // Taille d'un int = 32 bits = 4 octets

Ça n'a aucun rapport avec la taille d'un int, sur 4 char sur peux écrire au max 9999, enfin 999 avec le caractère de fin de chaîne
Il faudrait mettre 10, là t'es certain que ça rentre

Ajouté le 04/08/2015 à 22:45 :
Ah bah c'est ce que tu as fait Wolfm
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 04/08/2015 22:46 | #


Toute ma vie n'a alors était ... qu'un mensonge ?
Merci pour cette rectification
1337
Kirafi Hors ligne Membre Points: 2179 Défis: 10 Message

Citer : Posté le 09/08/2015 08:49 | #


Moi perso j'utilise une fonction que Lephé m'avait bidouillé, que j'ai rebidouillé ensuite !
Mais la différence c'est que moi j'affiche avec des sprites de chiffres, et la fonction prend ça en paramètres (je sais plus trop, j'suis au camping j'peux pas vous dire).
AfficheNombre( TableauDeSpriteDesChiffres, NombreAAfficher, X, Y, Position, Couleur){ ... }.
Position = vers la gauche, centré ou vers la droite par rapport aux coordonnées.
Le tout avec MonochromeLib !
iPod
Pour des parties rapides
Jusqu'où pourras-tu aller dans ce jeu "partie rapide" qu'est Dextris (élu Jeu Du Mois)
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
Autres
Franchement ils valent le coups
Deviens l'amiral de la marine dans SeaRush (jeu concours) (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
Lephenixnoir En ligne Administrateur Points: 22755 Défis: 149 Message

Citer : Posté le 18/08/2015 20:46 | #


Xavier59 a écrit :
Toute ma vie n'a alors était ... qu'un mensonge ?
Merci pour cette rectification

Je ne sais plus si c'était toi qui croyait le contraire, mais le NUL final est compris dans le nombre de caractères déclarés dans le tableau.
Donc pour char[n], tu disposes de n - 1 caractères.

Kirafi a écrit :
Moi perso j'utilise une fonction que Lephé m'avait bidouillé, que j'ai rebidouillé ensuite !

Ah ouais ? xD

Kirafi a écrit :
AfficheNombre( TableauDeSpriteDesChiffres, NombreAAfficher, X, Y, Position, Couleur){ ... }

Pas mal

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