Bonjour à tous.
Je cherche depuis pres de deux semaines une solution à mon problème pour le développement d'une application WPF.
En résumé ce que je voudrais faire:
- Lire un fichier texte qui s'actualise aléatoirement.(il peut prendre 10 lignes d'un coup puis plus rien pendant 1 Mn) c'est un fichiet d'un chat d'un jeu.
Décortiquer chaque ligne du fichier pour pouvoir les inserer dans une base de donnée.(Vérifier avant insertion dans la base si la ligne existe deja.)
Pour mon code j'ai commencer à lire le fichier texte en créant un timer qui relie le fichier toute les 100 millisecondes.(il faudrais que ce soit en temps réel pour créer des statistiques.)
J'ai réussi à créé le timer et la lecture se fait toutes les 100 millisecondes.La je n'ai aucun problème tous fonctionne.
Mon problème est que lorsque je veut lire toutes les lignes pour pouvoir les décortiquer et les classer par exemples avec un readallline j ai une exception outofmemory.(quand le fichier depasse 9Ko)
et quand j'essaye de faire une ReadLine je n'ai plus toutes les lignes la fenetre freeze et ne prend plus toutes les lignes.
voici mon code :
A mon avis je dois mal me prendre sur les methodes que j'utilise.
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
39
40
41
42
43
44
45
46
47
48
49 public partial class EssaiChatLog : Window { private Classe.TimerLectureChatLog ComptageGlobal; // Obtenir le nom de l'utilisateur de l'ordinateur string Username = System.Windows.Forms.SystemInformation.UserName; public EssaiChatLog() { InitializeComponent(); this.Loaded += new RoutedEventHandler(MiseEnRoute); } // Méthode pour mettre une remise en route automatique toute //les 500 milliseconde // La Classe se trouve sur une autre page public void MiseEnRoute(object sender, RoutedEventArgs e) { ComptageGlobal = new TimerLectureChatLog(TimeSpan.FromMilliseconds(0)); ComptageGlobal.Comptage += new EventHandler(LectureFichier); ComptageGlobal.Start(); } // Lecture du fichier text public void LectureFichier(object sender, EventArgs e) { string URLChat = File.ReadAllText(@"C:\Users\" + Username + @"\Documents\Gestyopia\TXT\URLChat.txt"); string fileName = @"" + URLChat + ""; TextReader Lecture; // Ouverture du fichier Chat.log et lecture ligne par ligne du fichier Lecture = new StreamReader(fileName); string lignes = Lecture.ReadToEnd(); textBoxLectureFichier.Text = lignes; Lecture.Close(); Lecture.Dispose(); } }
Donc si vous auriez des infos se serais avec joie car la je bloque entierement.
Partager