J'essaie de lire un fichier texte en C# et d'ajouter des numéros de ligne aux lignes.C# ajouter des numéros de ligne dans un fichier texte
Ce mon fichier d'entrée:
This is line one
this is line two
this is line three
Et cela devrait être la sortie:
1 This is line one
2 this is line two
3 this is line three
Ceci est mon code à ce jour:
class Program
{
public static void Main()
{
string path = Directory.GetCurrentDirectory() + @"\MyText.txt";
StreamReader sr1 = File.OpenText(path);
string s = "";
while ((s = sr1.ReadLine()) != null)
{
for (int i = 1; i < 4; i++)
Console.WriteLine(i + " " + s);
}
sr1.Close();
Console.WriteLine();
StreamWriter sw1 = File.AppendText(path);
for (int i = 1; i < 4; i++)
{
sw1.WriteLine(s);
}
sw1.Close();
}
}
Je suis 90% sûr que je besoin d'utiliser pour le cycle pour obtenir les numéros de ligne là mais jusqu'à présent avec ce code, je reçois cette sortie dans la console:
1 This is line one
2 This is line one
3 This is line one
1 this is line two
2 this is line two
3 this is line two
1 this is line three
2 this is line three
3 this is line three
C'est dans le fichier de sortie:
This is line number one.
This is line number two.
This is line number three.1
2
3
Je ne sais pas pourquoi la variable chaîne s n'est pas utilisée lors de l'écriture dans le fichier même si elle est défini précédemment (un autre bloc, un autre règles peut-être?).
commentaire général: Je pense qu'il est préférable d'utiliser (StreamReader) {} et d'utiliser (StreamWriter) {} block. Et aussi vous devriez nommer la '' ligne 'de votre variable, c'est plus clair, parce que c'est une ligne :) –
Je ne sais pas si c'est un problème avec la question ou votre code, mais vos crochets ne correspondent pas . La boucle while est fermée plus tôt que vous ne le pensez à partir de votre indentation. – Ray
Pourquoi gardez-vous la boucle de '1' '4'? Voulez-vous répéter chaque ligne quatre fois? –