Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Print ajoute une marque de paragraphe

2 réponses
Avatar
Mersenne
Bonsoir.

Dans mon dernier message, j'ai indiqué l'inconvénient d'avoir affaire à un
fichier txt où la marque de paragraphe compte pour deux caractères.

J'ai donc essayé de former des chaînes multilignes où un seul caractère
marque la fin d'une ligne (paragraphe si on préfère).
Avec Chr(13), le résultat est mauvais : si on applique Print à une chaîne
multiligne où la fin de ligne est marquée uniquement par Chr(13) et qu'on
ouvre le fichier comme txt, le Chr(13) ne provoque pas de passage à la
ligne.

Avec Chr(10) (non accompagné d'un Chr(13), le résultat est bon : il y a un
passage à la ligne à l'écran, et si on sélectionne l'unique caractère en
question, Len(Selection.Text) renvoie 1, comme dans un document Word, et
conformément à l'attente.

Malheureusement, quand on demande à Print d'écrire une chaîne multiligne,
elle insère cette chaîne (correctement), mais lui ajoute encore une marque
de fin de ligne qui est du type vbCrLf (autrement dit 13/10) et qui donne 2
quand on lui applique Len(Selection.Text).

On obtient donc un fichier hybride, qui provoquera de nouveau un bug si on
veut lui appliquer la macro qui utilise Len(Selection.Text) en s'attendant à
ce que les choses se passent comme avec un document Word.

On pensera peut-être à convertir le fichier de txt vers doc, mais bon, on
préférerait l'éviter.

Il n'y aurait pas de problème si Print n'ajoutait pas d'office Chr(13) &
Chr(10).

Ma question est donc : peut-on l'éviter ? Y a-t-il une autre fonction que
Print qui écrit exactement ce qu'on lui demande d'écrire ? (Write est encore
pire, je crois : elle ajoute des guillemets.)

Merci d'avance.

2 réponses

Avatar
Anacoluthe
Bonjour !

'Mersenne' nous a écrit ...
Il n'y aurait pas de problème si Print n'ajoutait pas d'office Chr(13) &
Chr(10).


PRINT #1, "Une chaine avec tous caractères même de contrôle" ;
n'ajoutera rien ! Notez le point-virgule en fin d'instruction...

Anacoluthe
« Tout n'est que ponctuation. »
- Tristan MAYA

Avatar
Mersenne
"Anacoluthe" a écrit
Bonjour !


PRINT #1, "Une chaine avec tous caractères même de contrôle" ;
n'ajoutera rien ! Notez le point-virgule en fin d'instruction...


Merci beaucoup. J'avais essayé, mais j'avais mis le point-virgule avant la
chaîne à écrire...