3 votes

Ruby Écrire un fichier txt DOS/Windows

C'est peut-être une question de débutant, mais je n'ai pas encore trouvé le problème. J'ai besoin d'écrire un fichier texte avec Ruby. Je peux écrire et créer le fichier à exporter, mais dès que j'exporte le fichier et qu'il est lu dans un autre logiciel, il me dit qu'il s'agit d'un fichier UNIX et que le programme exige qu'il soit DOS / Windows.

Comment puis-je faire cela avec Ruby ? J'utilise Rails 4 dans le projet.

Exemple de la façon dont j'écris.

File.open(filePath, "w+"){ |file| file.write("blablabla\n")}

2voto

Danny_ds Points 5095

Utilisez \r\n à la place :

File.open(filePath, "w+"){ |file| file.write("blablabla\r\n")}
  • Utilisation de \n (0x0a) n'est que le "style Unix".
  • Utilisation de \r\n (0x0d 0x0a) est "style Windows".

Bien que la plupart des logiciels devraient être capables de gérer les deux.

2voto

cremno Points 3237

Ce n'est pas très clairement documenté mais File.open accepte également ces String#encode options :

File.open('a.txt', 'w+', crlf_newline: true){ |file| file.write("blablabla\n")}

y

File.open('a.txt', 'w+', newline: :crlf){ |file| file.write("blablabla\n")}

L'un ou l'autre forcera Ruby à écrire CRLF au lieu de LF (CR est \r et LF est \n ).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X