[Inform 6] Manipulations de chaînes

Pour discuter des langages que nous utilisons pour réaliser nos jeux : problèmes, solutions, suggestions...

Modérateurs: Stormi, Otto Grimwald

[Inform 6] Manipulations de chaînes

Messagepar Adrien le Mar Sep 05, 2006 10:54 am

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...
Avatar de l’utilisateur
Adrien
Très Ancien
 
Messages: 1093
Inscription: Mar Aoû 24, 2004 9:23 am
Localisation: Montpellier, France

Messagepar Otto Grimwald le Mar Sep 05, 2006 11:11 am

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)
Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3028
Inscription: Mar Aoû 24, 2004 12:02 pm

Messagepar Adrien le Mar Sep 05, 2006 11:41 am

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.
Avatar de l’utilisateur
Adrien
Très Ancien
 
Messages: 1093
Inscription: Mar Aoû 24, 2004 9:23 am
Localisation: Montpellier, France

Messagepar Otto Grimwald le Mar Sep 05, 2006 12:30 pm

la seule chose que je pourrais répondre est de poser la question sur RAIF, il y a plus de codeurs dessus...

Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3028
Inscription: Mar Aoû 24, 2004 12:02 pm

Jb le codeur à 1 €

Messagepar JB le Mar Sep 05, 2006 4:04 pm

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
Avatar de l’utilisateur
JB
Grand Ancien
 
Messages: 510
Inscription: Mar Aoû 24, 2004 11:00 am
Localisation: Paris

Messagepar Adrien le Mar Sep 05, 2006 4:17 pm

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).
Avatar de l’utilisateur
Adrien
Très Ancien
 
Messages: 1093
Inscription: Mar Aoû 24, 2004 9:23 am
Localisation: Montpellier, France

Re: [Inform 6] Manipulations de chaînes

Messagepar auraes le Mer Avr 23, 2008 4:28 pm

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é.
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 pm


Retourner vers Questions techniques et aide pour votre code

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

cron