Lecture fichier / Out of memory
Bonjour je rencontre un problème de Out Of Memory exception
Le but de mon opération est de lire un fichier qui contient des informations organiser de telle sorte (voir ci dessous) afin de les sauvegarder dans un dictionnaire de dictionnaire :
Citation:
AMPS
1629:852
1765:1947
was
1629:852
1765:1947
2156:211
223:2072
4302:3892
4556:1375
4728:2486
510:1374
5846:2723
6632:1528
7564:1814
a
1629:852
1765:1947
2156:211
223:2072
4302:3892
4556:1375
4728:2486
510:1374
5846:2723
6632:1528
7564:1814
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| public void LoadIndexfile(string pathFile)
{
StreamReader streamReader = new StreamReader(pathFile, Encoding.UTF8);
string line = streamReader.ReadLine();
string saveWord = null;
string[] lineSplit = null;
Regex myRegex = new Regex(@"^([0-9]+):([0-9]+)$");
int counter = 0;
while (line != null)
{
counter++;
if (line != string.Empty)
{
if (!myRegex.IsMatch(line))
{
saveWord = line;
listWord.Add(line, new Dictionary<string, int>());
}
else
{
lineSplit = line.Split(':');
if (!listWord[saveWord].ContainsKey(lineSplit[0]))
listWord[saveWord].Add(lineSplit[0], Convert.ToInt32(lineSplit[1]));
}
}
if (counter%100000 == 0)
{
GC.Collect();
}
line = streamReader.ReadLine();
}
MessageBox.Show("Génération réussi");
streamReader.Close();
} |
Pour moi ce code est relativement simple.
Rien de très complexe mais j’obtiens cette erreur.
Mon fichier texte que j'essaye de lire pèse environ 1,5 Go
J'ai essayer d'apeller le GC comme dans le code mais rien n'y change.
Je tiens à preciser que l'excption arrive sur differentes ligne, cela depend de l'excceution du programme.
Voila si vous avez des piste je suis preneur.
Merci