J'ai un fichier texte de 1 Go que je dois lire ligne par ligne. Quelle est la meilleure et la plus rapide façon de le faire ?
private void ReadTxtFile()
{
string filePath = string.Empty;
filePath = openFileDialog1.FileName;
if (string.IsNullOrEmpty(filePath))
{
using (StreamReader sr = new StreamReader(filePath))
{
String line;
while ((line = sr.ReadLine()) != null)
{
FormatData(line);
}
}
}
}
Sur FormatData()
Je vérifie le mot de départ de la ligne qui doit correspondre à un mot et, en fonction de cela, j'incrémente une variable entière.
void FormatData(string line)
{
if (line.StartWith(word))
{
globalIntVariable++;
}
}
0 votes
Vous pouvez afficher
FormatData
(ou une version simplifiée), juste au cas où.0 votes
@Matthew : ignorez simplement FormatData(), en fait tout le processus est lent, donc pour le dépannage je l'ai commenté.
0 votes
Vous ne pouvez pas ignorer le
FormatData
si vous voulez une solution rapide, il est préférable de formater les données dans un thread séparé de celui qui lit les données.0 votes
Vous n'avez pas donné beaucoup de contexte sur la façon dont vous accédez aux données.
globalIntVariable
. Compte tenu de la mise en œuvre deFormatData
Dans le cadre de l'initiative de la Commission européenne, il est important que les lignes soient effectivement lues dans l'ordre. Si ce n'est pas le cas, lire plusieurs gros morceaux de données et agréger simultanément la variable globale sera plus efficace.0 votes
Vous devriez publier des données de référence réelles pour les solutions que vous avez déjà essayées.