J'ai un code qui:
mais au lieu d'écrire toutes les lignes du fichier, il n'écrit que la dernière ligne. p> a > p> Quelqu'un peut-il m'aider avec ceux-ci? Merci d'avance! P> p>
3 Réponses :
Vous avez besoin Vous écrasez chaque ligne précédente avec le nouveau, c'est pourquoi vous ne voyez que la dernière ligne d'entrée. P> fichier.appendallText () code>. p>
the fichier. Méthode WriteAllText DO:
crée un nouveau fichier, écrivez le contenu dans le fichier, puis ferme le fichier. Si le fichier cible existe déjà, il est écrasé. P> blockQuote>
Vous écrivez-vous dans chaque ligne lue ... Vous pouvez utiliser StringBuilder Pour le faire: P>
static void Main(string[] args) { RegexOptions options = RegexOptions.None; Regex regex = new Regex("[ ]{2,}", options); string FilePath = @"C:\Users\User\Desktop\download1.txt"; string OutputhFilePath = @"C:\Users\User\Desktop\download2.txt"; List<string> lines = new List<string>(); lines = File.ReadAllLines(FilePath).ToList(); var sb = new StringBuilder(); foreach (string line in lines) { string line1 = line.Replace(' ', ';'); line1 = regex.Replace(line, ";"); Console.WriteLine(line1); sb.AppendLine(line1); } File.WriteAllText(OutputhFilePath, sb.ToString()); Console.ReadLine(); }
Sb.writeline (Line1) devrait être - SB.Appordline (ligne1), mais le reste fonctionne. Merci!
Le problème est que vous émettez au fichier après chaque ligne. Quel Cependant, une solution encore meilleure est d'utiliser un fichier.writetealltext code> est-il toujours écrasé le fichier cible avec les dernières données. Ce dont vous avez besoin, c'est ajouter au fichier. Essayez par exemple le
Fichier.appendtext code> méthode
. P>
StringBuilder CODE>, appendez toutes les lignes à elle, puis sur la sortie du contenu entier (
Builder.tostring () code>) à la fois. Cela évite une ouverture et une fermeture excessives du fichier après chaque ligne. P>
Pourriez-vous imaginer ce que
WriteAlltext () code> fait juste par le nom? La première phrase de Docs. microsoft.com/en-us/dotnet/api/... peut aider. Peut-être que vous recherchez Docs. microsoft.com/en-us/dotnet/api/...
Vous init ligne1 par
chaîne ligne1 = ligne.replace ('', ';'; '); code> et ensuite vous écrasez cette valeur par
line1 = regex.replace (ligne, "); / code>. Est-il attendu?