Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Stack OverFlow !!

3 réponses
Avatar
jac_be
Bonjour,

J'ai une proc=E9dure qui r=E9cup=E8re la source de pages html.
Apr=E8s avoir r=E9cup=E9rer la source, celle-ci est enregistr=E9e dans un
fichier txt


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

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

Y aurait-il une erreur d'=E9criture ?
Comment g=E8rer le Stack OverFlow ??

Merci de vos r=E9ponses


Jacques

3 réponses

Avatar
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
MCP
http://www.jjeanson.fr
Avatar
Patrice
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

a écrit dans le message de groupe de discussion :

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



Avatar
jac_be
On 21 avr, 10:03, Jérémy Jeanson wrote:
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