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

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » EasyInput
Dark stormEn ligneMembre d'honneurPoints: 10917 Défis: 176 Message

EasyInput

Posté le 02/06/2014 21:33

INFORMATIONS IMPORTANTES

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



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 sur notre GitLab.


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.

Changelog
Cliquer pour enrouler
--- 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



Pages : 1, 2, 3, 4, 5, 6Suivante
Dark stormEn ligneMembre d'honneurPoints: 10917 Défis: 176 Message

Citer : Posté le 02/06/2014 21:33 | # | Fichier joint


L'addin de test
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Dark stormEn ligneMembre d'honneurPoints: 10917 Défis: 176 Message

Citer : Posté le 04/06/2014 14:42 | # | Fichier joint


Et le zip contenant la v1.0 de la lib

--- EDIT ---
Le fichier joint correspond à la v1.2 de la lib.
Les infos contenues dans le topic sont à jour.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
CartixHors ligneMembrePoints: 2748 Défis: 98 Message

Citer : Posté le 04/06/2014 14:55 | #


Tu as un souci dans la description du topic : le 8 ) a été changé en 8) dans la description de l'argument row
PositonHors ligneRédacteurPoints: 2396 Défis: 57 Message

Citer : Posté le 04/06/2014 15:05 | #


Oui, c'est assez pénible comme problème , il faudrait changer et mettre quelque chose comme :yeah: à la place
<<< Si jusque là vous aviez cru que mon pseudo est "Position", il est encore temps de regarder à gauche

Ça m'énerve les gens qui ne finissent pas leurs
PierrotllHors ligneAncien administrateurPoints: 5488 Défis: 41 Message

Citer : Posté le 06/06/2014 07:18 | #


Pour les caractères autorisés, ton système de flags est bizarre. Déjà, l'énumération n'est pas adaptée si la valeur des constantes a une importance, utilise plutôt des define. Ensuite, pour combiner les flags, il faut utiliser l'opérateur | (bitwise or) et non + (la différence est qu'avec un OR tu peux avoir une constante qui en réuni plusieurs autres, genre a-zA-Z0-9, et la combiner avec SPACE ou DOT). Et pour tester si un flag est activé, tu fais var_flags & CONSTANTE, la fonction is_allowed ne sert à rien.
PositonHors ligneRédacteurPoints: 2396 Défis: 57 Message

Citer : Posté le 27/06/2014 09:42 | #


Lorsque je veux compiler, j'obtiens un paquet d'erreurs à cause de syscall.src
<<< Si jusque là vous aviez cru que mon pseudo est "Position", il est encore temps de regarder à gauche

Ça m'énerve les gens qui ne finissent pas leurs
Dark stormEn ligneMembre d'honneurPoints: 10917 Défis: 176 Message

Citer : Posté le 27/06/2014 12:36 | #


Tu compile en C ou en C++ ?
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
CartixHors ligneMembrePoints: 2748 Défis: 98 Message

Citer : Posté le 27/06/2014 12:38 | #


Tu as changé ce que PLL te conseillait ou pas ? (pour savoir si l'utilisation est différente de celle expliquée dans le post principal)
Dark stormEn ligneMembre d'honneurPoints: 10917 Défis: 176 Message

Citer : Posté le 27/06/2014 12:40 | #


Je l'ai changé, mais je ne sais plus si j'ai modifié le zip. Je met à jour tout de suite pour être sûr.

Ajouté le 27/06/2014 à 12:48 :
Fait, voici le lien de téléchargement : EasyInput
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
TheprogHors ligneMembrePoints: 1447 Défis: 20 Message

Citer : Posté le 27/06/2014 12:57 | #


Au fait maintenant que j'y pense, je sais pas trop si c'est un équivalent vu que j'ai pas encore teste easyinput mais dans serial monitor, il y avait aussi une gestion des touches pour rentrer des chaines, en l'adaptant un peu ça devrait donner ce que tu veux non ?
LephenixnoirHors ligneAdministrateurPoints: 16772 Défis: 140 Message

Citer : Posté le 27/06/2014 13:20 | #


Tu as pensé à ce que je t'avais proposé ?
Retourner le pointeur sur la chaîne, ça pourrait être sympa pour l'allocation dynamique.
PositonHors ligneRédacteurPoints: 2396 Défis: 57 Message

Citer : Posté le 27/06/2014 14:47 | #


@Dark Storm : je compile en C
<<< Si jusque là vous aviez cru que mon pseudo est "Position", il est encore temps de regarder à gauche

Ça m'énerve les gens qui ne finissent pas leurs
Dark stormEn ligneMembre d'honneurPoints: 10917 Défis: 176 Message

Citer : Posté le 27/06/2014 14:50 | #


T'as bien ajouté le fichier "syscall.src" aux fichiers du projet ?
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
PositonHors ligneRédacteurPoints: 2396 Défis: 57 Message

Citer : Posté le 27/06/2014 14:54 | #


Tu veux dire dans le S.D.K. ? Moi j'ai mis un #include.
<<< Si jusque là vous aviez cru que mon pseudo est "Position", il est encore temps de regarder à gauche

Ça m'énerve les gens qui ne finissent pas leurs
LephenixnoirHors ligneAdministrateurPoints: 16772 Défis: 140 Message

Citer : Posté le 27/06/2014 15:12 | #


Non, il faut l'ajouter au projet comme tous les fichiers sources.
S'il est inclus dans un fichier c, il provoque des bugs car la syntaxe est incorrecte.
PositonHors ligneRédacteurPoints: 2396 Défis: 57 Message

Citer : Posté le 27/06/2014 15:21 | #


D'accord merci
<<< Si jusque là vous aviez cru que mon pseudo est "Position", il est encore temps de regarder à gauche

Ça m'énerve les gens qui ne finissent pas leurs
LegolasHors ligneAncien rédacteurPoints: 3266 Défis: 104 Message

Citer : Posté le 27/06/2014 15:23 | #


Ça a l'air super ! Merci !
Mes programmes
Cacher les programmes
Mes défis
Cacher les défis



CartixHors ligneMembrePoints: 2748 Défis: 98 Message

Citer : Posté le 02/07/2014 17:21 | #


Le fichier read_me.txt est illisible si jamais (il n'y a aucun retour à la ligne)

Ajouté le 02/07/2014 à 17:37 :
Et tant que j'y suis, Input_Box_Length, c'est en pixel ou en nombre de caractères ?
Dark stormEn ligneMembre d'honneurPoints: 10917 Défis: 176 Message

Citer : Posté le 02/07/2014 17:52 | #


Nombre de caractères.
Faut que je vois ça pour le readme, sans doute un pb d'encodage...
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
LephenixnoirHors ligneAdministrateurPoints: 16772 Défis: 140 Message

Citer : Posté le 02/07/2014 18:04 | #


Oui, à tous les coups c'est de l'encodage Linux mal supporté...
Pages : 1, 2, 3, 4, 5, 6Suivante

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2020 | Il y a 166 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