Y a-t-il un outil pour
1. déterminer qu'un fichier à des fin de ligne unix (10)
2. transformer facilement ce fichier avec des fin de ligne windows (13 10)
Y a-t-il un outil pour
1. déterminer qu'un fichier à des fin de ligne unix (10)
2. transformer facilement ce fichier avec des fin de ligne windows (13 10)
Notepad
S'il y a des fin de ligne Unix tu t'en rendra compte tout de suite...
Visual Studio peut le faire (dialogue Enregistrer sous, Enregistrer avec codage (petite flèche sur le bouton Enregistrer))
Sinon, la plupart des éditeurs de texte un minimum évolués permettent de faire ça (Editplus, UltraEdit...)
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
A priori le caractère 10 n'est pas utilisé seul sous Windows.
Donc tu peut le faire en copiant par exemple d'un flux source qui contient le fichier dont tu ignores tout vers le flux de destination qui contient ton fichier texte avec les bonnes fin de lignes. Pour chaque caractère si c'est chr(10) tu vérifies qu'avant il y avait un chr(13) et si ce n'est pas le cas tu écris chr(13) chr(10), sinon tu met juste le chr(10) ...
De la vallée du vent ...
Distribution d'applications .NET avec DreamShield
DreamShield, Le site, forum, blog, wiki & Jeux
Mon blog, Cours et tutoriels pour apprendre C#, forum C#, Offres d’emploi développeur C#
C'est en fait ce que j'ai fait :
Le File.WriteAllLines remet automatiquement des fin de ligne Win
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 if (IsUnixFile("E:\\Test.txt")) { s = File.ReadAllLines("E:\\Test.txt", Encoding.Default); File.WriteAllLines("E:\\Test.txt", s, Encoding.Default); } private bool IsUnixFile(string aFile) { FileStream fs; int Car; int OldCar = 0; fs = new FileStream(aFile, FileMode.Open); Car = fs.ReadByte(); while ((Car != 10) && (Car != 0)) { OldCar = Car; Car = fs.ReadByte(); } fs.Close(); if (OldCar == 13) { return false; } else { return true; } }
Bonne journée à tous !!
Pense au tag si c'est résolu... merci
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Ca vient, ça vient...
Il faut que je fasse encore une correction dans la fonction IsUnixFile :
Le readbyte retourne -1 si fin de fichier et non pas 0..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 public static bool IsUnixFile(string aFile) { FileStream fs = null; int Car; int OldCar = 0; try { fs = new FileStream(aFile, FileMode.Open); Car = fs.ReadByte(); while ((Car != 10) && (Car != -1)) { OldCar = Car; Car = fs.ReadByte(); } } finally { if (fs != null) { fs.Close(); } } if ((OldCar == 13) || (Car == -1)) { return false; } else { return true; } }
Pis ne pas oublier de fermer dans tous les cas le FileStream....
On considère que si on n'a pas de fin de ligne en arrivant à la fin du fichier,
on est pas dans un fichier unix...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if ((OldCar == 13) || (Car == -1))
Salut à tous et bonne journée !!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager