Je veux supprimer une ligne dans un fichier txt après avoir obtenu les données avec StreamReader.WriteLine(). mais je ne peux pas obtenir de référence utile pour le web. quelqu'un me dit que je peux le faire avec la méthode Repalce(). Mais je ne pense pas que c'est efficace. quelqu'un peut-il me dire comment le résoudre. Merci!C#: supprimer une ligne dans un fichier Txt
Répondre
Vous ne pouvez pas supprimer quelque chose au milieu d'un fichier. Vous devez soit réécrire tout à partir de ce point, ou simplement réécrire le fichier entier. Et si vous utilisez StreamReader/StreamWriter, vous n'avez aucun accès à la position du fichier, donc votre seul choix est de réécrire le fichier entier.
Voici un exemple de méthode pour le faire.
public static void RemoveLines(Predicate<string> removeFunction,string file){
string line, tempFile = null;
try{
tempFile = Path.GetTempFileName();
using (StreamReader sr = new StreamReader(file))
using (StreamWriter sw = new StreamWriter(tempFile,false,sr.CurrentEncoding))
while ((line = sr.ReadLine()) != null)
if (!removeFunction(line)) sw.WriteLine(line);
File.Delete(file);
File.Move(tempFile, file);
}finally{
if(tempFile != null && File.Exists(tempFile))
File.Delete(tempFile);
}
}
Utilisé comme celui-ci
RemoveLines(line=>line.Length==10,"test.txt")
il supprime toutes les lignes d'une longueur de 10 caractères, et utilise un fichier temporaire pour minimiser les risques. Bien sûr, si vous voulez quelque chose de plus court, vous pouvez faire quelque chose comme ça.
File.WriteAllLines(fileName,File.ReadAllLines(fileName).Where(line => line.Length != 10))
nécessite de la mémoire plus de travail, et vous devriez probablement faire l'affaire tempfile/déplacer pour se prémunir contre une panne d'ordinateur provoque un fichier corrompu. Mais c'est un code compact et facile à comprendre.
- 1. Supprimer une ligne du grand fichier txt dans Java
- 2. Parse un fichier txt
- 3. Supprimer une ligne spécifique d'un fichier texte?
- 4. Comment imprimer un tableau dans un fichier .txt dans Matlab?
- 5. UserControl dans le fichier txt
- 6. Supprimer une ligne dans Eclipse
- 7. Lot Supprimer les fichiers à partir du fichier cmd ligne
- 8. Comment écrire un mot au début de chaque ligne dans un fichier txt de bloc-notes? C++
- 9. création d'un fichier txt
- 10. du fichier txt aux tableaux
- 11. Impossible de mettre un fichier .txt à la fin d'un autre fichier .txt
- 12. comment supprimer une ligne particulière du fichier d'accès aléatoire
- 13. Lots/Rechercher et modifier des lignes dans un fichier TXT
- 14. Comment supprimer manuellement une ligne dans UITableView?
- 15. Comment supprimer une ligne du fichier texte basé sur "studentId"?
- 16. Comment mime supprimer une ligne spécifique dans un UITableView?
- 17. Supprimer une ligne spécifique dans un .NET RichTextBox
- 18. Ecriture de TOUTES les sorties du programme dans un fichier txt en C++
- 19. Afficher le texte du fichier .txt dans le fichier batch
- 20. Supprimer la dernière ligne Databound DataGridView C#
- 21. Supprimer une ligne de gridview
- 22. obtenir le chemin du fichier txt
- 23. Comment écrire plusieurs zones de texte dans un fichier txt généré en programme en C#?
- 24. Comment supprimer la dernière ligne du fichier dans Ruby?
- 25. C++ Supprimer une nouvelle ligne de la chaîne multiligne
- 26. supprimer ligne sélectionnée dans Gridview dans Asp.net
- 27. Création et ajout de texte dans un fichier txt dans VB.NET
- 28. imprimez un txt sur l'imprimante par défaut avec C#
- 29. Lorsqu'un formulaire charge le fichier txt lu dans le tableau
- 30. En utilisant Emacs, comment mettre en retrait/formater un segment de code dans un fichier TXT?
Quelle est la raison de la considérer comme une méthode inefficace? –