Page 1 sur 1

[Inform 6] Manipulations de chaînes

MessagePosté: Mar Sep 05, 2006 10:54 am
par Adrien
Est-ce que vous avez connaissance de bonnes librairies offrant des fonctions de manipulation de chaînes?
C'est bien beau d'éviter les concaténations autant que possible, au bout d'un moment ça devient lourd et trop limitatif.

J'ai essayé istring.h mais ça n'a pas l'air de bien fonctionner, si quelqu'un a d'autres suggestions, je suis preneur...

MessagePosté: Mar Sep 05, 2006 11:11 am
par Otto Grimwald
c'est pour faire et obtenir quoi ? Car je ne vois pas trop ce que tu veux. As-tu essayé py4inform.h ? (je plaisante :)= je ne connais rien qui fasse cela en fait)

MessagePosté: Mar Sep 05, 2006 11:41 am
par Adrien
Il est facile et souvent suffisant d'afficher avec un print une suite de chaînes et de variables...

Code: Tout sélectionner
 print "blabla", variable_toto, "suite blabla^";




Mais j'aimerais pouvoir stocker tout ça dans une variable afin de le réafficher à loisir, et là c'est déjà bcp moins pratique car Inform est très limité en manipulation de chaînes.

MessagePosté: Mar Sep 05, 2006 12:30 pm
par Otto Grimwald
la seule chose que je pourrais répondre est de poser la question sur RAIF, il y a plus de codeurs dessus...

Jb le codeur à 1 €

MessagePosté: Mar Sep 05, 2006 4:04 pm
par JB
Si c'est pour une variable unique dans laquelle tu dois accumuler des morceaux de chaine, je serais toi je créerai un objet situé dans nothing par exemple :

object stock "stockeur de variables",
papa 0,
tango 0,
blupe 0,
omar 0,
fred 0;

Et une fonction Affichevariable(); du type

[;Affichevariable
print "Hello ";
if (stock.papa==0) {print "...etc...";}
if (stock.blupe ==3) {print "...etc...";}
];

En modifiant les valeurs des variables au lieu de concatener les nouvelles variables quand c'est besoin.

Bon ca casse pas des briques mais c'est une solution.

Généralement quand je suis devant ce type de problème j'essaie d'imaginer une autre énigme :)

JB

MessagePosté: Mar Sep 05, 2006 4:17 pm
par Adrien
Cette méthode peut être pratique, c'est clair! Malheureusement dans mon cas je crois que ça serait vraiment très laborieux à implémenter. A étudier...


En tout cas j'ai pas mal parcouru les archives de RAIF et vraiment, il n'y a pas de recette miracle pour ça. Dommage! La bibliothèque istring.h était prometteuse, mais elle bugge lors de la compilation, je ne sais pas pourquoi (pas trop cherché pour l'instant j'avoue).

Re: [Inform 6] Manipulations de chaînes

MessagePosté: Mer Avr 23, 2008 4:28 pm
par auraes
J'ignore si cela intéresse encore quelqu'un mais Inform permet au contraire d'écrire un chaine dans un tableau très simplement avec Chaine.print_to_array. Inform6.pdf page 69/70 :
Array Petals->30;
("A rose is a rose is a rose").print_to_array(Petals); GLULX semble beaucoup mieux fourni en fonction de ce type.
Pour écrire un mot du dictionnaire, plus compliqué parce qu'ils sont compactés, if faut utiliser @output_stream 3, qui redirige vers le flux 3 (un tableau) les Print d'Inform.
Array sortname1 -> 128;
@output_stream 3 sortname1; print (name) obj1; @output_stream -3;
Voilà, c'est guère plus compliqué.