Problème : Utilisation sous Unix de fichiers écrits sous Windows

Problème : Utilisation sous Unix de fichiers écrits sous Windows - C - Programmation

Marsh Posté le 11-01-2004 à 19:13:47    

Bonjour, voilà j'ai un problème avec des fichiers que j'écris sous windows et que j'utilise sous unix.  
 
En fait le programme qui utilise ces fichiers sous unix est un analyseur lexical que j'ai écrit. Et comme vous le savez peut-être quand on écrit un fichier sous windows, à chaque fin de ligne, il rajoute \r\n ... Alors que sous unix il ne voit que les \n et met des ^M à tous les endroits où il trouve un \r.  
Alors j'ai trouvé des scripts pour virer ces \r mais mon analyseur lexical ne fonctionne quand même pas. Alors j'aurai voulu écrire directement des fichiers mode Unix sous windows. J'utilise Xemacs et connaissant un peu cet éditeur, je suis sûr qu'il existe une fonction pour faire celà (pas mettre ces \r à la "*^ù" ) mais je ne la trouve pas.  
Alors mon analyseur lexical plante quand je l'exécute sur un fichier de test que j'ai écrit sous windows. Je pourrai modifier directement mon analyseur lexical mais c'est pas très recommandé en fait donc je cherche le moyen d'écrire sous windows des fichiers comme si je les écrivais sous Unix.
 
 
Je sais pas si j'ai été très clair mais demandez des précisions si vous sentez que vous pouvez répondre mais que vous ne savez pas trop à quelle question répondre :p
 
Merci d'avance

Reply

Marsh Posté le 11-01-2004 à 19:13:47   

Reply

Marsh Posté le 11-01-2004 à 19:20:21    

Ton analiseur lexical est pas capable de considerer \r\n et \n comme un seul et meme token??
Hmmm
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 11-01-2004 à 19:24:58    

man flip

Reply

Marsh Posté le 11-01-2004 à 21:42:05    

il existe parfois des commandes dos2unix et unix2dos

Reply

Marsh Posté le 12-01-2004 à 08:42:51    

tu peux ajouter dans ton .emacs:
;;;convert a buffer from dos ^M end of lines to unix end of lines
(defun dos2unix ()
  (interactive)
    (goto-char (point-min))
      (while (search-forward "\r" nil t) (replace-match "" )))
 

Reply

Marsh Posté le 12-01-2004 à 10:20:39    

oui mais bon, c'est pas aussi simple, c'est les '\r\n' qu'il faut remplacer par un unique '\n'

Reply

Marsh Posté le 12-01-2004 à 12:58:33    

dans un fichier texte, c'est quand même assez peu fréquent d'avoir des caractères '\r' isolés. Même si ça se peut, c'est peu fréquent. Dans tous les autres cas, cette fonction est alors très utile, notemment dans le cas présent. Je sais que quand j'ai un fichier texte, comme un .c ou .cpp et consorts, qui a des ^M quand je l'ouvre avec emacs, et ben j'appelle cette fonction et pouf, c'est bon.
 
Mais c'est vrai, il faudrait faire un peu plus 'fin'

Reply

Marsh Posté le 12-01-2004 à 13:07:46    

<mode troll="off">
Sous Vim ça marche tout de suite. Il marque dans la barre d'état [DOS] et il y a des commandes pour faire la convertion dispo par defaut :set ff=dos et :set ff=unix ( agit à la sauvegarde )
</mode>
 
C'est juste pour information, pas pour lancer un troll entre les editeurs.

Reply

Marsh Posté le 12-01-2004 à 13:40:46    

dos2unix marche très bien.

Reply

Marsh Posté le 12-01-2004 à 19:00:37    

Pour lire des fichiers texte sous Windows qu'ils soient Unixiens ou Windowesques, j'utilise PFE (éditeur ASCII gratuit, Programmer's File Editor d'Alan Phillips, mon éditeur habituel). On passe de l'un à l'autre quand on exporte en (dé)cochant une case.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed