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.
Menu
Liste des logiciels
Nom Date
Libs Python Graph 35+E II et Graph 90+E
SDK G85 - EasyInput
SDK G85 - Memory and Files access
SDK G85 - Easy Coding
SDK G85 - Easy grayscales
SDK G85 - GrayScreenshotLib
SDK G85 - MonochromeLib
Lua - Tile Motor


Visiteurs :
Si vous souhaitez soumettre un logiciel veuillez prendre contact avec un administrateur seuls à pouvoir ajouter des logiciels par mesure de sécurité.
Logiciels >> Snippets >> SDK G85 - EasyInput
SDK G85 - EasyInput
Ajouté par :
Dark stormHors ligneLabélisateurPoints: 11641 Défis: 176 Message
Pour les calculatrices : Graph 35+ USB, 35+E, 75, 75+, 75+E
Ajouté le : 2015-03-25 23:37
Nombre de visites de la page : 47668

Fichiers à télécharger :

¤ EasyInput_v3-2.zip 5 Ko (1412 téléchargements)

Description :

INFORMATIONS IMPORTANTES

Nom : EasyInput
Auteur : Dark Storm (L.GATIN)
Dernière mise à jour : 16/02/2015
Version : 3.2
Licence : GNU General Public License
Topic officiel



Présentation

EasyInput est une librairie de fonctions destinée à simplifier les méthodes de saisie de texte par un utilisateur.
Elle est utilisable gratuitement, vous pouvez la télécharger en cliquant sur ce lien.


Utilisation

--- Fichiers ---
Quoi qu'il arrive, vous avez besoin des fichiers <EasyInput.c> et <EasyInput.h>
Selon votre compilateur, il vous faut chosir le bon fichier de syscalls :
- Pour le Fx9860 SDK : gardez le fichier <EasyInout_.src>
- Pour GCC : gardez le fichier <EasyInput_.s>

--- Initialisation ---
Utilisez EI_init() pour mettre toutes les valeurs de configuration par défaut.
Ensuite, vous pouvez modifier les paramètres suivants en appelant la fonction EI_manage_config(int parameter, int value).
→ EI_SET_COLUMN : Un nombre entre 1 et 21 qui correspond à la colonne de début de la zone de texte
→ EI_SET_ROW : Idem, mais entre 1 et 8 pour les lignes
→ EI_SET_BOX_LENGTH : La longueur de la zone de texte, en caractères.
→ EI_SET_ALIGN : Le mode d'alignement du texte (EI_ALIGN_LEFT, EI_ALIGN_CENTER, EI_ALIGN_RIGHT)
→ EI_SET_START_MODE : Le mode de départ du curseur (EI_NORMAL, EI_ALPHA, EI_ALPHA_LOCKED)
→ EI_SET_Aa_KEY : Le code de la touche qui servira à changer la casse
Exemple, pour fixer le mode de départ du curseur :
char var;
EI_manage_config(EI_SET_START_MODE, EI_ALPHA);

Si <value> est égale à 0, la fonction retourne un pointeur sur l'élément demandé. Cela permet de récupérer les valeurs de configuration.
Exemple, récupérer la valeur de la longueur de la box :
longueur = EI_manage_config(EI_SET_LENGHT_BOX, NULL);


--- Appel ---
La fonction EI_input_string(int string_length, const char *chars_allowed) retourne un pointeur sur la chaine et doit être appellée de la manière suivante :
my_string = EI_input_string(21, (const char*)".0123456789");

La chaine <chars_allowed> contient tout les caractères dont la saisie est autorisée.


Conversion numérique :

Il est souvent utile de demander un nombre à l'utilisateur. Le problème est que EasyInput n'est fait que pour gérer les chaines de caractères. Pour cela, voici quelques astuces :

Conversion vers un entier
1) Inclure la lib standard (stdlib.h)
2) Utiliser atoi :
my_string = EI_input_string(10, (const char*)"0123456789");
mon_int = atoi(my_string);


Conversion vers n'importe quel type numérique
1) Inclure la lib des i/o (stdio.h)
2) Utiliser sscanf en remplaçant les lettres bleues suivant le tableau disponible ici
my_string = EI_input_string(10, (const char*)"0123456789");
sscanf(my_string, "[blue]%d[/blue]", &ma_variable);


Changelog
Cliquer pour enrouler
--- V3.2 ---
- Ajout des caractères +, -, *, /, _, # à la liste de ceux traités.

--- V3.1 ---
- Simplification du système de configuration

--- V3.0 ---
- Réécriture de la boucle principale
- Correction des bugs concernant les syscalls à destination de l'OS 2.00 et ultérieur (merci à Nemhardy pour l'info)
- Correction des bugs concernant les ajouts de caractères impromptus
- Correction des bugs concernant les alignements de texte

--- V2.3 ---
- Refonte du système d'affichage

--- V2.2 ---
- Refonte du système de configuration
- Ajout de la gestion des minuscules

--- V2.1 ---
- Ajout de la "regex" pour les caractères autorisés
- Correction d'une fuite de mémoire lorsque l'on quitte avec Ac/ON
- Changement de licence

--- V2.0 ---
- Modification du mode de retour de la chaine

--- V1.2 ---
- Correction de quelques bugs

--- V1.0 ---
- Création de la librairie


Commentaires :


Dark stormHors ligneLabélisateurPoints: 11641 Défis: 176 Message
Posté le 20-06-2015 à 15:07 | #
Ajout d'un petit truc sur les conversions vers des variables numériques.
-florian66-Hors ligneAncien rédacteurPoints: 2384 Défis: 20 Message
Posté le 13-07-2015 à 13:55 | #
le 10^x c'est E mais comment je peux rajouter ce caractère (pas la lettre)

EDIT : c'est bon j'ai modifié un tout petit peu la lib

Dark stormHors ligneLabélisateurPoints: 11641 Défis: 176 Message
Posté le 13-07-2015 à 15:40 | #
Est-ce que tu peux la partager (au moins en commentaire) ? Si tu l'utilise dans un programme qui sera disponible sur le site, tu dois partager ta version de la lib
Après, si c'est juste une petite modif, mets un zip ici ça ira bien
-florian66-Hors ligneAncien rédacteurPoints: 2384 Défis: 20 Message
Posté le 13-07-2015 à 21:33 | #
En fait j'ai juste rajoutée une ligne (l.96) avec if(key == KEY_CHAR_EXP) key = 'e'; pour e=>exponentielle.
La lib sera dispo de toute façon quand je ferais la Maj de Periodiq, je dirais que je l'ai modifiée
Dark stormHors ligneLabélisateurPoints: 11641 Défis: 176 Message
Posté le 13-07-2015 à 21:42 | #
Ok, tu distribuera au moins les sources de la lib modifiée
(C'est le GNU GPL v3 qui veut ça)
-florian66-Hors ligneAncien rédacteurPoints: 2384 Défis: 20 Message
Posté le 13-07-2015 à 21:45 | #
oui tous sera inclus et je le signalerai
Dark stormHors ligneLabélisateurPoints: 11641 Défis: 176 Message
Posté le 13-07-2015 à 23:52 | #
C'est parfait alors

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 203 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