Stack OverFlow !!

Le
jac_be
Bonjour,

J'ai une procédure qui récupère la source de pages html.
Après avoir récupérer la source, celle-ci est enregistrée dans un
fichier txt


Après un certain temps et quelques fichiers, j'ai un message "Stack
OverFlow "

Voici le code utilisé :
Dim HttpWRequest As HttpWebRequest = CType(WebRequest.Create(page),
HttpWebRequest)
HttpWResponse = CType(HttpWRequest.GetResponse, HttpWebResponse)
sr = New StreamReader(HttpWResponse.GetResponseStream)
contenu = sr.ReadToEnd
SWFichier = File.AppendText(My.Application.Info.DirectoryPath &
"ep_infoInfo" & Nom & ".txt") ' crée ou si existe ajoute
SWFichier.WriteLine(contenu)
SWFichier.Close()

Y aurait-il une erreur d'écriture ?
Comment gèrer le Stack OverFlow ??

Merci de vos réponses


Jacques
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jérémy Jeanson
Le #19159801
Bonjour Jacques,

As tu regardé si ton Stack OverFlow se produisait sur des fichiers de
grosse taille ?
Ta variable contenu est une string ?

En fait je me demande si tu ne ferrais pas mieux de lire ta stream ligne
par ligne et de l'écrire au fur et a mesure plutôt que de tous lire d'un
coup puis de tout écrire d'un bloc. Ce serrait certainement moins
gourmand en ressource en ce qui concerne la lecture.
--
Jérémy JEANSON
MCP
http://www.jjeanson.fr
Patrice
Le #19160851
Bonjour,

Classiquement c'est quand on appelle une fonction de façon récursive.
Peut-être aussi si l'on passe des paramètres énormes sur la pile.

Voir aussi éventuellement la fenêtre "pile des appels" ce qui permettrait de
voir si c'est la première possibilité.

--
Patrice


Bonjour,

J'ai une procédure qui récupère la source de pages html.
Après avoir récupérer la source, celle-ci est enregistrée dans un
fichier txt


Après un certain temps et quelques fichiers, j'ai un message "Stack
OverFlow ... "

Voici le code utilisé :
Dim HttpWRequest As HttpWebRequest = CType(WebRequest.Create(page),
HttpWebRequest)
HttpWResponse = CType(HttpWRequest.GetResponse, HttpWebResponse)
sr = New StreamReader(HttpWResponse.GetResponseStream)
contenu = sr.ReadToEnd
SWFichier = File.AppendText(My.Application.Info.DirectoryPath &
"rep_infoInfo" & Nom & ".txt") ' crée ou si existe ajoute
SWFichier.WriteLine(contenu)
SWFichier.Close()

Y aurait-il une erreur d'écriture ?
Comment gèrer le Stack OverFlow ??

Merci de vos réponses


Jacques



jac_be
Le #19160581
On 21 avr, 10:03, Jérémy Jeanson
Bonjour Jacques,

As tu regardé si ton Stack OverFlow se produisait sur des fichiers de
grosse taille ?
Ta variable contenu est une string ?

En fait je me demande si tu ne ferrais pas mieux de lire ta stream ligne
par ligne et de l'écrire au fur et a mesure plutôt que de tous lire d 'un
coup puis de tout écrire d'un bloc. Ce serrait certainement moins
gourmand en ressource en ce qui concerne la lecture.
--
Jérémy JEANSON
MCPhttp://www.jjeanson.fr



Bonjour,

Tous les fichiers txt produits ont une taille de 38ko.
Je viens de refaire un test et je suis allé voir l'onglet performance
dans le Gestionnaired de tâches
Mémoire physique disponible 11245 Ko!!
Par contre dans l'onglet Processus Util. mémoire pour mon
application ...867045 Ko !!
Pourquoi , comment ?

J'ai aussi ajouté une ligne après contenu = sr.ReadToEnd , sr.close()
Peut-être encore ajouté sr = Nothing ??

Si tu as une idée. Je vais quand même essayé de lire ligne par ligne.

Merci
Publicité
Poster une réponse
Anonyme