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…
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)
Il est facile et souvent suffisant d’afficher avec un print une suite de chaînes et de variables…
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.
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
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).
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é.