J'ai besoin d'initialiser le tableau 2D et la première colonne est chaque ligne d'un fichier. Comment puis-je obtenir le nombre de lignes dans un fichier?Comment obtenir le nombre de lignes dans un fichier en C#?
Répondre
Vous devez ouvrir le fichier de lecture dans chaque ligne pour obtenir le nombre:
var lines = File.ReadAllLines(filename);
var count = lines.Length;
De MSDN:
int counter = 0;
string line;
// Read the file and display it line by line.
System.IO.StreamReader file =
new System.IO.StreamReader("c:\\test.txt");
while((line = file.ReadLine()) != null)
{
Console.WriteLine (line);
counter++;
}
file.Close();
Vous pouvez faire:
System.IO.File.ReadAllLines("path").Length
Modifier
Comme Joe le fait remarquer, j'ai omis toute la gestion des erreurs standard et je n'ai pas montré que vous utiliseriez alors ce même tableau pour traiter le reste de votre code.
Il peut y avoir un moyen plus efficace pour des fichiers plus volumineux, mais vous pouvez commencer par quelque chose comme:
int l_rowCount = 0;
string l_path = @"C:\Path\To\Your\File.txt";
using (StreamReader l_Sr = new StreamReader(l_path))
{
while (l_Sr.ReadLine())
l_rowCount++;
}
Il serait probablement plus utile pour vous d'ouvrir réellement le fichier, lisez les lignes dans une liste , puis créez votre tableau 2D.
List<string> lines = new List<string>()
using(System.IO.StreamReader file = new System.IO.StreamReader(fileName))
{
while(!file.EndOfStream) lines.Add(file.ReadLine());
}
Vous pouvez alors utiliser votre liste lines
pour créer votre tableau.
int counter = 0;
string line;
System.IO.StreamReader file = new System.IO.StreamReader("c:\\t1.txt");
while((line = file.ReadLine()) != null)
{
counter++;
}
file.Close();
compteur vous donnera le nombre de lignes. vous pouvez insérer une ligne dans votre tableau aussi bien avec la boucle.
@Mutant: vous obtiendrez plus de upvotes si vous mettez un fichier dans un bloc using. –
pourrait vous aller avec quelque chose de plus exotique comme une déclaration LINQ
Count * de textfile
quelque chose comme ça?
upvote pour ReadAllLines, mais je voudrais en fait enregistrer le tableau quelque part car il va en avoir besoin bientôt et vérifier la longueur du tableau sauvegardé. –
J'étais en train d'éditer mettre une clause CYA que j'ai laissé tout cela dehors puis choisir pas trop .. je devrais avoir devrais. Merci – JoshBerke
Soyez juste prudent avec la taille du fichier et ReadAllLines, pourrait rencontrer des problèmes de mémoire. Pas vraiment applicable avec ce Q, car tout le fichier sera lu de toute façon. Mais quelque chose devait normalement être regardé surtout si vous ne contrôlez pas le fichier. – Richard