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.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » EasyInput
Dark storm Hors ligne Labélisateur Points: 11631 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



1, 2, 3, 4, 5, 6 Suivante
Dark storm Hors ligne Labélisateur Points: 11631 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 storm Hors ligne Labélisateur Points: 11631 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
Cartix Hors ligne Membre Points: 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
Positon Hors ligne Rédacteur Points: 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
Pierrotll Hors ligne Ancien administrateur Points: 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.
Positon Hors ligne Rédacteur Points: 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
Dark storm Hors ligne Labélisateur Points: 11631 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
Cartix Hors ligne Membre Points: 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 storm Hors ligne Labélisateur Points: 11631 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
Theprog Hors ligne Membre Points: 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 ?
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 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.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

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


@Dark Storm : je compile en C
Dark storm Hors ligne Labélisateur Points: 11631 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
Positon Hors ligne Rédacteur Points: 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.
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 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.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

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


D'accord merci
Legolas Hors ligne Ancien rédacteur Points: 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



Cartix Hors ligne Membre Points: 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 storm Hors ligne Labélisateur Points: 11631 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
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 Message

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


Oui, à tous les coups c'est de l'encodage Linux mal supporté...
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
1, 2, 3, 4, 5, 6 Suivante

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 v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 88 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