[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Ligne vide (etait croneries)



frederic massot <frederic@juliana-multimedia.com> wrote:

> Charles Goyard wrote:
> > 
> > > Il y a une différence entre une ligne vide et une ligne sans "\n" à la
> > > fin aussi.  Je crois que Bernard voulait dire "avec ou sans une ligne
> > > qui correponderait à ^$ alors que la ligne d'au-dessus à un retour
> > > chariot".
> > 
> > Mais que dire des lignes vides sans retour chariot ?
> > 
> 
> Peut on la qualifier de ligne, si elle n'a pas de retour chariot ?


        Ben, ça tourne à la métaphysique, là :-)

1/ Le retour chariot est un SÉPARATEUR de lignes (il n'est donc pas considéré
   comme faisant véritablement partie des lignes elles-mêmes). En conséquence,
   il n'est en théorie nécessaire qu'une ligne soit suivie par un retour
   chariot que dans le cas où il existe des lignes suivantes.

2/ une ligne vide est une ligne ne contenant aucun caractère. Mais pour
   pouvoir qualifier la chaîne vide de «ligne», il faut qu'elle soit suivie
   d'autre chose, donc d'autre(s) ligne(s), et par conséquent il faut qu'elle
   soit suivie d'un retour chariot.


Exemples:

tata \n titi \n toto <EOF>       => 3 lignes (séparées par 2 \n).

tata \n titi \n toto \n <EOF>    => 3 lignes, mais 4 \n cette fois. Le <EOF>
                                 ne peut en effet pas compter comme ligne
                                 vide, puisqu'il n'est suivi de rien.

\n tata \n titi \n toto <EOF>    => 4 lignes (séparées par 3 \n). La première
                                 ligne est vide et elle est bien suivie par
                                 (au moins) un retour chariot.

tata \n \n titi \n toto <EOF>    => 4 lignes (séparées par 3 \n). La deuxième
                                 ligne est vide et elle est bien suivie par
                                 (au moins) un retour chariot.

tata \n titi \n toto \n \n <EOF> => 4 lignes avec 4 \n. La quatrième et
                                 dernière ligne est vide et elle est bien
                                 suivie par (au moins) un retour chariot.


Même si l'usage d'une dernière ligne sans retour chariot est douteux et prête
à confusion, il n'est en théorie pas à exclure, et beaucoup de programmes
sont mal conçus car ils présupposent à tort qu'une ligne est définie par ^.*\n


        Voilà ce qu'il fallait en retenir, dans les grandes lignes ;-)


-- 
Didier Verna, didier@lrde.epita.fr, http://www.lrde.epita.fr/~didier

EPITA / LRDE, 14-16 rue Voltaire   Tel.+33 (1) 53 14 59 47
94276 Le Kremlin-Bicêtre, France   Fax.+33 (1) 44 08 01 99   didier@xemacs.org



Reply to: