12
votes

Supprimer les lignes vierges dans un fichier texte

Comment pouvez-vous supprimer des lignes vierges d'un fichier texte en C #?


13 commentaires

Doivent être un peu plus précis. Quel type de fichier texte faisez-vous référence?


@Dee Jay: -1 pour l'orthographe d'orthographe, c'est à quoi sert la modification.


@Tieson T. geez, puis-je être plus spécifique, supprimer simplement les lignes vierges d'un fichier texte, il a plusieurs lignes, certaines qui sont vides, donc qui ont des chaînes sur


@Dee Jay c'est assez dur, je suis sûr que vous faites une faute d'orthographe occasionnelle


Mike, votre historique des questions indique une personne qui tente de programmer une application simple en utilisant uniquement une aide communautaire. C'est égoïste et pas vraiment la programmation. Ramassez un livre, passez à travers des tutoriels - vous serez mieux à long terme.


@Mile Oui, vous pouvez. C # a des utilitaires qui facilitent le fonctionnement de XML, par exemple, cela affecte donc la réponse que je donnerais.


@Mike: Tout d'abord, la descente est gratuite maintenant, deuxièmement, il a montré que vous ne mettez pas d'effort dans votre question.


@amit: la baisse est gratuite maintenant, alors faites la responsabilité de la politique


Dupliqué possible de c # - Supprimer des lignes en double dans un fichier texte


@Hans Passant - Ce n'est certainement pas un duplicata de la question que vous faites référence. Celui-ci vous demande comment supprimer des lignes vides, celle que vous faites référence à demander comment éliminer les lignes en double.


@Alex - essayant de sauver une épave de train. Sûrement vous Voir comment il n'y a pas de différence réelle entre une duplication et une ligne vide? Appelez une ligne vide un duplicata.


Je pense que cela s'appelle «comportement du troupeau». Au lieu de se concentrer sur la question, qui est bien simple, mais assez claire, les gens commencent à ne pas ressentir de l'orthographe et d'autres choses non pertinentes. Tout a commencé juste avec l'orthographe, ce qui n'est même pas légitime -1. Les gens, pourquoi es-tu si en colère?


@Hans Passant - Les réponses à ces questions sont différentes. La question des lignes en double est un peu plus compliquée et la solution sera de plus en plus de mémoire. Les deux questions ont déjà des réponses, vous pouvez voir que les réponses sont différentes et non interchangeables.


4 Réponses :


34
votes

Si le fichier est petit: xxx

si le fichier est énorme: xxx


3 commentaires

Pas une bonne solution pour les fichiers énormes que l'ensemble du fichier pourrait être 1 ligne, puis vous le lisez toujours tout en mémoire avec readline () ...


Fait intéressant lors de la recherche sur ce sujet, j'ai trouvé ce blog post qui recule cette réponse: chrisfultstow.com/... Il montre essentiellement des métriques indiquant que les fichiers vraiment volumineux utilisent un streamreader n'utilisez pas le Readalllines méthode.


N'a pas fonctionné. ne peut pas convertir implicitement le type voilé à la chaîne .



11
votes
File.WriteAllLines(path, File.ReadAllLines(path).Where(l => !string.IsNullOrWhiteSpace(l)));

0 commentaires

3
votes

Lire tout le contenu d'un fichier dans une chaîne, alors il suffit d'exécuter xxx

Autres options similaires figure dans Comment supprimer des lignes vides d'une chaîne formatée?


0 commentaires

1
votes

Nous pouvons y parvenir très facilement en utilisant Technique Linq forte> pour un fichier énorme ou petit. 1.Explanation: Il lit le fichier et ignorera toutes les lignes vides et stockera toutes les données dans une matrice de chaîne xxx pré>

  1. Il supprimera ce fichier. P> XXX PRE> LI>

  2. Il créera un nouveau fichier au même nom et appendez toutes les données de tableau dans un nouveau fichier p> XXX PRE> LI> ol>

    code complet p>

                    string[] text = File.ReadAllLines(LoraWan_Parameter_Check_Tool.Properties.Settings.Default.csv_file_path.ToString()).Where(s => s.Trim() != string.Empty).ToArray();
                    File.Delete(LoraWan_Parameter_Check_Tool.Properties.Settings.Default.csv_file_path.ToString());
                    File.WriteAllLines(LoraWan_Parameter_Check_Tool.Properties.Settings.Default.csv_file_path.ToString(), text);
    


0 commentaires