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

Forum Casio - Projets de programmation


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



Dark storm En ligne Labélisateur Points: 11549 Défis: 176 Message

Citer : Posté le 20/07/2014 22:19 | #


Je l'ai reçu 30min après avoir écrit la news
Pas grave, ça sera pour la semaine prochaine

Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Legolas Hors ligne Ancien rédacteur Points: 3266 Défis: 104 Message

Citer : Posté le 20/07/2014 22:21 | #


Je sais, désolé mais j'avais oublié .
Mes programmes
Cacher les programmes
Mes défis
Cacher les défis



Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 20/07/2014 22:26 | #


Je vois, seulement je ne vois pas l'utilité de poster également sur le forum... C'est quand même censé être une surprise (mais ce n'est que mon avis)
<<< 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
Aragorn Hors ligne Membre Points: 807 Défis: 5 Message

Citer : Posté le 15/10/2014 18:05 | #


Legolas vient de me passer son code pour notre projet et je me suis aperçu qu'il utilise les syscalls avec cette librairie. Je me demandais donc si elle est compatible avec la librairie usefull et sinon, comment la rendre compatible ( setFPS est déclaré dans syscall.c et usefull ). Depuis que j'ai rajouté le code de Legolas, j'ai également une erreur de compil' :
Undefined external symbol "_EI_input_string" referenced in "C:\[...]\Debug\Enigmes.obj"

Ajouté le 15/10/2014 à 19:46 :
Ah non, excusez moi, je ne regardais pas le bon fichier quand j'ai cru que setFPS était présent dans syscall.c.
Mon erreur vient donc, je pense, de la lib easy input. Si vous avez une idée de l'origine du problème (Undefined external symbol "_EI_input_string" referenced in "C:\[...]\Debug\Enigmes.obj") n'hésitez pas à me prévenir. Cela fait plusieurs heures que je cherche en vain. :aie2:
Mes Programmes
Cliquer pour enrouler
The Legend of CASIO - Basic Quest ( Basic )
Notes ( logiciel qui calcule votre moyenne, basic )
Professeur Layton ( jeu d'énigme en C )
Mario & Sonic Rush ( jeu de course 3D en C )
Projets
Cliquer pour enrouler
Zelda Ancestral Relics ( projet en C )
Projets que je soutient
Cliquer pour enrouler
Pokémon jade de Dodormeur
Jetpack Joyride de Drakalex007
Arcuz de Dark Storm
Casion de Az et Darkysun




Un jeu de course en 3D pour calculatrice :
http://www.planet-casio.com/Fr/programmes/voir_un_programme_casio.php?showid=2773&page=1.
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 15/10/2014 19:50 | #


Je pense savoir d'où viens ton erreur :

1) Tu n'as pas bien inclu le .c
2) Tu as fais "Rebuild" au lieu de "Rebuild all"
1337
Aragorn Hors ligne Membre Points: 807 Défis: 5 Message

Citer : Posté le 15/10/2014 19:57 | #


Nooooon ! J'ai perdu plusieurs heures à chercher la solution à une erreur stupide.

Merci beaucoup Xavier, tu avais raison : j'avais simplement oublié d'inclure EasyInput.c (j'avais mis tout les fichiers de la lib sauf celui-là :boulet: ).
Mes Programmes
Cliquer pour enrouler
The Legend of CASIO - Basic Quest ( Basic )
Notes ( logiciel qui calcule votre moyenne, basic )
Professeur Layton ( jeu d'énigme en C )
Mario & Sonic Rush ( jeu de course 3D en C )
Projets
Cliquer pour enrouler
Zelda Ancestral Relics ( projet en C )
Projets que je soutient
Cliquer pour enrouler
Pokémon jade de Dodormeur
Jetpack Joyride de Drakalex007
Arcuz de Dark Storm
Casion de Az et Darkysun




Un jeu de course en 3D pour calculatrice :
http://www.planet-casio.com/Fr/programmes/voir_un_programme_casio.php?showid=2773&page=1.
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 15/10/2014 19:59 | #


D'ailleurs, @Dark Storm, si tu pouvais faire en sorte que l'ont puisse écrire en minuscule ce serait pas mal, car j'ai essayé de le faire, ça marche, mais c'est quand même bien buggé
1337
Eltoredo Hors ligne Modérateur Points: 4299 Défis: 35 Message

Citer : Posté le 15/10/2014 20:00 | #


Un petit merci au passage pour ta lib, super utile
La procrastination est une vertu. (voir ma description pour comprendre mon raisonnement)
Silaxe Hors ligne Membre Points: 809 Défis: 12 Message

Citer : Posté le 15/10/2014 20:00 | #



Legolas Hors ligne Ancien rédacteur Points: 3266 Défis: 104 Message

Citer : Posté le 15/10/2014 20:24 | #


Oups, dommage que j'ai été absent, j'aurais pu te le dire avant.
Et Aragorn, j'ai re-changé pas mal de petits bug comme ALLOW_ALL et pas ALLOW_09, mais cela n'est que des petit trucs, je te le passerai bientôt.
[/HS]
Mes programmes
Cacher les programmes
Mes défis
Cacher les défis



-florian66- Hors ligne Ancien rédacteur Points: 2370 Défis: 20 Message

Citer : Posté le 10/11/2014 20:37 | #


On pourrais pas bidouiller un truc pour que la fonction EI_input_string ne soit pas bloquante, ça ne m'arrange pas
In Arch, I trust ! And you ?
Lephenixnoir En ligne Administrateur Points: 21370 Défis: 149 Message

Citer : Posté le 10/11/2014 20:39 | #


Comment veux-tu qu'elle ne soit pas bloquante ?
Il faut bien entrer au clavier...
-florian66- Hors ligne Ancien rédacteur Points: 2370 Défis: 20 Message

Citer : Posté le 10/11/2014 20:40 | #


oui mais exécuter ta fonction en même temps c'est pour faire une recherche instantanée dans mon tableau périodique
In Arch, I trust ! And you ?
Lephenixnoir En ligne Administrateur Points: 21370 Défis: 149 Message

Citer : Posté le 10/11/2014 20:44 | #


Dans ce cas, modifie-la, pour qu'à chaque fois que la chaîne dans le champ change, tu fasses la recherche.
-florian66- Hors ligne Ancien rédacteur Points: 2370 Défis: 20 Message

Citer : Posté le 10/11/2014 20:45 | #


j'ai pas bien compris le code entier de la lib même si elle n'est pas bien compliqué
Je sais pas d'où vienne les caractères
In Arch, I trust ! And you ?
Lephenixnoir En ligne Administrateur Points: 21370 Défis: 149 Message

Citer : Posté le 10/11/2014 20:47 | #


Ben en fait, ça vient d'un coup de chance (voulu par CASIO quand même) : quand t'appuie sur les chiffres, GetKey() renvoie... le caractère correspondant ! Et de même pour les touches letrées avec [ALPHA].
-florian66- Hors ligne Ancien rédacteur Points: 2370 Défis: 20 Message

Citer : Posté le 10/11/2014 20:48 | #


ah ok mais j'ai pas envie de modifier cette lib mais je vais quand même essayer quelque chose
In Arch, I trust ! And you ?
Darkysun Hors ligne Membre Points: 1747 Défis: 52 Message

Citer : Posté le 20/11/2014 17:27 | #


@lephe comment ca un coup de chance ??? Pourquoi aurait-ils fait une fonction getkey si ce n'est pas pour avoir le code de la touche
Si je ne réponds pas à un post depuis trop longtemps : envoyez-moi un message pour me le rappeler !




Lephenixnoir En ligne Administrateur Points: 21370 Défis: 149 Message

Citer : Posté le 20/11/2014 18:26 | #


Le coup de chance, c'est que lorsque tu appuies sur le chiffre [5] le code soit le caractère '5' ! Ça aurait pu être autrement, comme en Basic.
-florian66- Hors ligne Ancien rédacteur Points: 2370 Défis: 20 Message

Citer : Posté le 20/11/2014 18:27 | #


il aurait fallu faire des tableaux de conversion dans ce cas là

Ajouté le 02/12/2014 à 19:06 :
Je n'arrive pas à faire marcher les minuscule avec

EI_input_string(numero,15,ALLOW_az,1,2,15,LEFT,ALPHA_LOCKED);
In Arch, I trust ! And you ?
Lephenixnoir En ligne Administrateur Points: 21370 Défis: 149 Message

Citer : Posté le 02/12/2014 21:00 | #


En fait il y a un gros risque que lorsque tu démarres en ALPHA_LOCKED tu tapes uniquement des majuscules au clavier. Je me trompe ?

Sinon, faudrait préciser ton problème. Que se passe-t-il ? Tu as des majuscules, tu n'as rien du tout ? Donne-nous des détails, dire que ça ne fonctionne pas ne nous aide pas.

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