Question de string | |
GreG | 19-Apr-2006/17:16:06+2:00 |
Je me suis apercu d'un truc: >> {salut { ca va?} == "salut^/ca va?" >> >> {saluuuuuuuuuuuuuuuuuuuuuuuuuut { ca vaaaaaaaaaaaaaaaaaaaaaaaaaaaaa?} == {saluuuuuuuuuuuuuuuuuuuuuuuuuut ca vaaaaaaaaaaaaaaaaaaaaaaaaaaaaa?} >> Dans le premier ca, le retour a la ligne est represente avec un ^/ et dans le second cas, on a vraiment un retour a la ligne, meme en faisant un mold. C'est bizarre! Je m'attendais a ce qu'un mold remplace tout les retour a la ligne avec un ^/ mais en fait non. Quelqu'un a des explications sur le sujet? | |
Reb-Kodeur | 20-Apr-2006/9:11:24+2:00 |
Ds un cas la chaine est entourée de {} alors ds le premier cas elle est entourée de "". Le mold agit différement sur ces deux types de string, qui pourtant sont identiques ds le fond. | |
GreG | 20-Apr-2006/17:44:06+2:00 |
Ce qui est bizarre, c'est qu'en prenant le cas de la chaine avec des {}, si on fait un: replace/all chaine newline "*" alors tout s'affiche sur une seule ligne avec des * a la place des retours a la ligne, ce qui parait normal. par contre, j'aurais bien voulu faire de meme pour les newline, c-a-d avoir des ^/ a la place de mes *, le tout sur une seule ligne, est-ce possible? des idees? | |
reboltof | 21-Apr-2006/9:10:08+2:00 |
A mon avis, la seule solution afin d'éviter l'interprétation automatique des retours à la ligne, est d'empêcher celle-ci en protégeant la chaine par un bloc! Par exemple: >> chaine: to-block "test * ligne2 * ligne3 * avec des espaces * fin" == [test * ligne2 * ligne3 * avec des espaces * fin] >> replace/all chaine '* newline == [test #"^/" ligne2 #"^/" ligne3 #"^/" avec des espaces #"^/" fin] Remarque que cette approche n'est possible qu'en ayant des "*" entourés de deux espaces: " * ", sinon le 'replace ne peut pas être exécuté... Il est alors aisé de réaliser la conversion, quand celle-ci devient nécessaire: >> to-string chaine == {test ligne2 ligne3 avecdesespaces fin} | |
reboltof | 21-Apr-2006/11:43:52+2:00 |
Correction: >> form [test #"^/" ligne2 #"^/" ligne3 #"^/" avec des espaces #"^/" fin] == {test ligne2 ligne3 avec des espaces fin} ... si on veut garder les espaces entre les mots! | |
Login required to Post. |