Aide - Recherche - Membres - Calendrier
Version complète : Remplacer le contenu d'un champ en C
Les Forums de PalmAttitude.org > GENERAL PalmOS > Développement sous PalmOS
elyro
Bonjour à tous,

je suis toujours sur la même application depuis 2 mois.... et j'ai toujours pas terminé d'être ennuyé...

je cherche à enregistrer un nouveau contenu dans un champ, mon problème est le suivant :

lorsque je modifie le contenu de mon champ, si la nouvelle chaine de caractères n'est pas exactement de la même taille que l'ancienne, il me reste des morceaux de l'ancienne chaine à la suite.

J'ai tenté d'allouer une taille mémoire supérieure avec FldSetTextAllocatedSize avant de faire mon enregistrement mais ça ne passe pas correctement,


Ma solution consiste à évaluer la différence en taille entre l'ancienne et la nouvelle chaine (sachant que l'ancienne est forcément plus grande que la nouvelle) pour ensuite rajouter à la nouvelle chaine autant d'espaces qu'il manque de caractères. Seulement je ne trouve pas de fonction qui écrive caractère par caractère dans un champ.

Merci de me faire part de vos suggestions, je me doute que cela existe... ou bien qu'il existe une solution pour qu'un champ ait une taille fixe, c'est à dire que quoiqu'il arrive, s'il n'est pas plein, il soit rempli jusqu'au bout par des espaces ou autre chose pourvu que l'ancien contenu disparaisse et que la séparation avec le champs suivant dans la base reste la même.


have a good day,

Elyro
olivier101
Pour terminer une chaîne de caractères en C il suffit de lui mettre un caractère nul ('') à la fin.
elyro
Existe t'il une commande pour pour écrire ce "" dans le champs en C ?
et même pour écrire tout court dans un champs ?
olivier101
Une chaine étant un tableau de caractères, il suffit de faire
CODE
chaine[x] = '';
où x est la longueur de la chaine...

Tu fais quoi pour modifier le champ, FldSetText ou FldSettextHandle ?

Tu ne veux pas copier le morceau de code, qu'on comprenne ce que tu fais ?
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.