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 :
Voici mon code :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
Pour moi ce code est relativement simple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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(); }
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
Partager