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 ??
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
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
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
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
<jac_be@hotmail.com> a écrit dans le message de groupe de discussion :
5ae1ee3a-4281-4733-9aa5-eb8624664622@v15g2000yqn.googlegroups.com...
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 ??
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
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
On 21 avr, 10:03, Jérémy Jeanson <jeremy.jean...@free.fr> 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.
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.