Bonjour
Dans un windowsForm, je charge des gros fichiers CSV dans des Listes (une List par champ dans le CSV) pour pouvoir les traiter plus rapidement par la suite. Chaque liste reprend la date qui est dans le premier champ du CSV.
Le code (qui fonctionne très bien) donne ceci :
Mon soucis est que je ne vois pas comment gérer un avancement avec ça ;
la boucle principale sexécute plus de 2 millions de fois sur un tache super rapide...
Si je calcule autant de fois un pourcentage d'avancement mon chargement va devenir 2 ou 3 fois plus long !
Comment puis-je gérer autrement mon chargement afin de savoir où j'en suis dedans ?
Merci par avance pour vos conseils.
PS : ne pas hésiter à démonter mon code ! S'il y a moyen d'aller plus vite pour charger le fichier je suis preneur...
Dans un windowsForm, je charge des gros fichiers CSV dans des Listes (une List par champ dans le CSV) pour pouvoir les traiter plus rapidement par la suite. Chaque liste reprend la date qui est dans le premier champ du CSV.
Le code (qui fonctionne très bien) donne ceci :
Code:
while (!MonFichier.EndOfStream) //tant que je ne suis pas à la fin du fichier
{
string ligne = MonFichier.ReadLine(); // lecture d'une ligne
tabCSV = ligne.Split(';'); // récupération du tableau de string avec chaque contenu entre ;
string[] FormatsDates = new string[8] { "dd/MM/yyyy", "d/M/yyyy", "dd/MM/yyyy HH:mm:ss.fff", "d/M/yyyy HH:mm:ss.fff", "dd/MM/yyyy HH:mm:ss", "d/M/yyyy HH:mm:ss", "dd/MM/yyyy HH:mm", "d/M/yyyy HH:mm" };//formats possible de date
double date = DateTime.ParseExact(tabCSV[0], FormatsDates, null, System.Globalization.DateTimeStyles.None).ToOADate();
index = index - NbChamps + 1;
for (int y = 1; y < NbChamps; y = y + NombreDeChampParParametre)
{
try
{
Valeur = Convert.ToDouble(tabCSV[y], CultureInfo.InvariantCulture);
}
catch
{
break;
}
MesList[index].Add(new MyClassSerie { myDate = date, myValeur = Valeur });
index++;
}
}la boucle principale sexécute plus de 2 millions de fois sur un tache super rapide...
Si je calcule autant de fois un pourcentage d'avancement mon chargement va devenir 2 ou 3 fois plus long !
Comment puis-je gérer autrement mon chargement afin de savoir où j'en suis dedans ?
Merci par avance pour vos conseils.
PS : ne pas hésiter à démonter mon code ! S'il y a moyen d'aller plus vite pour charger le fichier je suis preneur...
Aucun commentaire:
Enregistrer un commentaire