J'ai une petite question ?
Voici mon probleme : J'ai un mouchard sur un serveur web au format txt, il
s'agit d'un fichier ou sont enregistrer toutes les erreurs qui se sont
produite au niveau des requettes sql.
Je télécharge à la main : et j'utilise un programme VB6 qui le lit et
m'extrait les messages que je recherche. Mon fichier fait plus de 19000
lignes, et en offline pas de problemes.
Ce que je recherche s'est la possibilité d'utiliser le contrôle winsock pour
injecter dans une variable tout mon fichier et ensuite effectuer toutes une
série de traitement sur celui-ci.
Est-ce que je ne suis pas trop hors limite dans un tels cas de figure ?
Pourquoid essayer d'effectuer un traitement in line alors que cela irrait
plus cite de le télécharger et de l'utiliser offline - ben tout simplement
parcequ'il évolue en permanence !
Des idées pour obtenir un code efficace ?
PS : J'ai déjà utiliser winsock pour récupérer les flux rss au format xml,
mais les tailles sont beaucoup plus légère ! Mon fichier txt fait un peut
moins de 1mo alors que les flux que j'exploite ne font pas plus d'une 50aine
de ko
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
Jean-Marc
"Fabien Gouverneur" a écrit dans le message de news:43a6b593$0$23966$
Bonjour à tous !
J'ai une petite question ? Voici mon probleme : J'ai un mouchard sur un serveur web au format
txt, il
s'agit d'un fichier ou sont enregistrer toutes les erreurs qui se sont produite au niveau des requettes sql. Je télécharge à la main : et j'utilise un programme VB6 qui le lit et m'extrait les messages que je recherche. Mon fichier fait plus de
19000
lignes, et en offline pas de problemes.
Ce que je recherche s'est la possibilité d'utiliser le contrôle
winsock pour
injecter dans une variable tout mon fichier et ensuite effectuer
toutes une
série de traitement sur celui-ci.
Est-ce que je ne suis pas trop hors limite dans un tels cas de figure
?
Pourquoid essayer d'effectuer un traitement in line alors que cela
irrait
plus cite de le télécharger et de l'utiliser offline - ben tout
simplement
parcequ'il évolue en permanence !
Des idées pour obtenir un code efficace ?
PS : J'ai déjà utiliser winsock pour récupérer les flux rss au format
xml,
mais les tailles sont beaucoup plus légère ! Mon fichier txt fait un
peut
moins de 1mo alors que les flux que j'exploite ne font pas plus d'une
50aine
de ko
Hello,
rien de compliqué à priori: Il suffit d'utiliser le protocole HTTP, et d'envoyer un GET au serveur.
Pour une taille de 1 méga, tu peux faire un essai avec Winsock, mais ça risque d'être un peu lent, tout dépend des contraintes que tu as. Si ca rame trop, tu pourras utiliser les API send et recv.
Si tu as besoin de détails ou d'exemple, n'hésite pas à demander.
-- Jean-marc Tester mon serveur (VB6) => http://myjmnhome.dyndns.org "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
"Fabien Gouverneur" <agronomia@free.fr> a écrit dans le message de
news:43a6b593$0$23966$626a14ce@news.free.fr...
Bonjour à tous !
J'ai une petite question ?
Voici mon probleme : J'ai un mouchard sur un serveur web au format
txt, il
s'agit d'un fichier ou sont enregistrer toutes les erreurs qui se sont
produite au niveau des requettes sql.
Je télécharge à la main : et j'utilise un programme VB6 qui le lit et
m'extrait les messages que je recherche. Mon fichier fait plus de
19000
lignes, et en offline pas de problemes.
Ce que je recherche s'est la possibilité d'utiliser le contrôle
winsock pour
injecter dans une variable tout mon fichier et ensuite effectuer
toutes une
série de traitement sur celui-ci.
Est-ce que je ne suis pas trop hors limite dans un tels cas de figure
?
Pourquoid essayer d'effectuer un traitement in line alors que cela
irrait
plus cite de le télécharger et de l'utiliser offline - ben tout
simplement
parcequ'il évolue en permanence !
Des idées pour obtenir un code efficace ?
PS : J'ai déjà utiliser winsock pour récupérer les flux rss au format
xml,
mais les tailles sont beaucoup plus légère ! Mon fichier txt fait un
peut
moins de 1mo alors que les flux que j'exploite ne font pas plus d'une
50aine
de ko
Hello,
rien de compliqué à priori:
Il suffit d'utiliser le protocole HTTP, et d'envoyer
un GET au serveur.
Pour une taille de 1 méga, tu peux faire un essai avec Winsock,
mais ça risque d'être un peu lent, tout dépend des contraintes
que tu as. Si ca rame trop, tu pourras utiliser les API
send et recv.
Si tu as besoin de détails ou d'exemple, n'hésite pas à demander.
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
"Fabien Gouverneur" a écrit dans le message de news:43a6b593$0$23966$
Bonjour à tous !
J'ai une petite question ? Voici mon probleme : J'ai un mouchard sur un serveur web au format
txt, il
s'agit d'un fichier ou sont enregistrer toutes les erreurs qui se sont produite au niveau des requettes sql. Je télécharge à la main : et j'utilise un programme VB6 qui le lit et m'extrait les messages que je recherche. Mon fichier fait plus de
19000
lignes, et en offline pas de problemes.
Ce que je recherche s'est la possibilité d'utiliser le contrôle
winsock pour
injecter dans une variable tout mon fichier et ensuite effectuer
toutes une
série de traitement sur celui-ci.
Est-ce que je ne suis pas trop hors limite dans un tels cas de figure
?
Pourquoid essayer d'effectuer un traitement in line alors que cela
irrait
plus cite de le télécharger et de l'utiliser offline - ben tout
simplement
parcequ'il évolue en permanence !
Des idées pour obtenir un code efficace ?
PS : J'ai déjà utiliser winsock pour récupérer les flux rss au format
xml,
mais les tailles sont beaucoup plus légère ! Mon fichier txt fait un
peut
moins de 1mo alors que les flux que j'exploite ne font pas plus d'une
50aine
de ko
Hello,
rien de compliqué à priori: Il suffit d'utiliser le protocole HTTP, et d'envoyer un GET au serveur.
Pour une taille de 1 méga, tu peux faire un essai avec Winsock, mais ça risque d'être un peu lent, tout dépend des contraintes que tu as. Si ca rame trop, tu pourras utiliser les API send et recv.
Si tu as besoin de détails ou d'exemple, n'hésite pas à demander.
-- Jean-marc Tester mon serveur (VB6) => http://myjmnhome.dyndns.org "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
Jean-Marc
"Fabien Gouverneur" a écrit dans le message de news:43a6b593$0$23966$
Bonjour à tous !
J'ai une petite question ? Voici mon probleme : J'ai un mouchard sur un serveur web au format
txt, il
s'agit d'un fichier ou sont enregistrer toutes les erreurs qui se sont produite au niveau des requettes sql. Je télécharge à la main : et j'utilise un programme VB6 qui le lit et m'extrait les messages que je recherche. Mon fichier fait plus de
19000
lignes, et en offline pas de problemes.
Ce que je recherche s'est la possibilité d'utiliser le contrôle
winsock pour
injecter dans une variable tout mon fichier et ensuite effectuer
toutes une
série de traitement sur celui-ci.
Est-ce que je ne suis pas trop hors limite dans un tels cas de figure
?
Pourquoid essayer d'effectuer un traitement in line alors que cela
irrait
plus cite de le télécharger et de l'utiliser offline - ben tout
simplement
parcequ'il évolue en permanence !
Des idées pour obtenir un code efficace ?
Hop, voici un exemple tout fait, testé et qui fonctionne bien. On peut améliorer très nettement les perfs si besoin est en utilisant une meilleure technique pour la concaténation que le simple '&' de VB (dont les perfs sont vraiment très mauvaises). Bref voici le code, il récupère un fichier de 1 Méga en moins de 3 secondes sur un serveur avec un upload convenable:
Option Explicit Dim G_DONE As Boolean Dim G_RECEIVED As String
Private Sub Command1_Click() Winsock1.Close Winsock1.RemoteHost = "ADRESSE.DU.SERVEUR" Winsock1.RemotePort = 80
Winsock1.Connect DoEvents While Winsock1.State <> 7 DoEvents DoEvents Wend
' indiquer dans le GET l'url de la ressource recherchée. Winsock1.SendData "GET /test.txt HTTP/1.0" & vbCrLf & vbCrLf
G_RECEIVED = 0 G_DONE = False While Not G_DONE DoEvents Wend ' hop, le contenu du fichier est dans G_RECEIVED ' on peut faire ce qu'on veut ici, clore le socket, etc. End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim s As String Static ss As String Static allBytes As Long Dim p1 As Long Static expected_length As Long
Winsock1.GetData s If expected_length = 0 Then p1 = InStr(s, "Content-Length:") If p1 Then expected_length = Val(Mid$(s, p1 + 15, InStr(p1, s, vbCrLf) - 1)) + Len(Mid$(s, 1, InStr(s, vbCrLf & vbCrLf))) + 3
Label2.Caption = expected_length End If End If ss = ss & s allBytes = allBytes + bytesTotal Label1.Caption = allBytes Label1.Refresh If allBytes = expected_length Then
G_RECEIVED = ss G_DONE = True ss = "" allBytes = 0 expected_length = 0 End If End Sub
-- Jean-marc Tester mon serveur (VB6) => http://myjmnhome.dyndns.org "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
"Fabien Gouverneur" <agronomia@free.fr> a écrit dans le message de
news:43a6b593$0$23966$626a14ce@news.free.fr...
Bonjour à tous !
J'ai une petite question ?
Voici mon probleme : J'ai un mouchard sur un serveur web au format
txt, il
s'agit d'un fichier ou sont enregistrer toutes les erreurs qui se sont
produite au niveau des requettes sql.
Je télécharge à la main : et j'utilise un programme VB6 qui le lit et
m'extrait les messages que je recherche. Mon fichier fait plus de
19000
lignes, et en offline pas de problemes.
Ce que je recherche s'est la possibilité d'utiliser le contrôle
winsock pour
injecter dans une variable tout mon fichier et ensuite effectuer
toutes une
série de traitement sur celui-ci.
Est-ce que je ne suis pas trop hors limite dans un tels cas de figure
?
Pourquoid essayer d'effectuer un traitement in line alors que cela
irrait
plus cite de le télécharger et de l'utiliser offline - ben tout
simplement
parcequ'il évolue en permanence !
Des idées pour obtenir un code efficace ?
Hop, voici un exemple tout fait, testé et qui fonctionne
bien. On peut améliorer très nettement les perfs si besoin
est en utilisant une meilleure technique pour la concaténation
que le simple '&' de VB (dont les perfs sont vraiment très mauvaises).
Bref voici le code, il récupère un fichier de 1 Méga en moins de 3
secondes sur un serveur avec un upload convenable:
Option Explicit
Dim G_DONE As Boolean
Dim G_RECEIVED As String
Private Sub Command1_Click()
Winsock1.Close
Winsock1.RemoteHost = "ADRESSE.DU.SERVEUR"
Winsock1.RemotePort = 80
Winsock1.Connect
DoEvents
While Winsock1.State <> 7
DoEvents
DoEvents
Wend
' indiquer dans le GET l'url de la ressource recherchée.
Winsock1.SendData "GET /test.txt HTTP/1.0" & vbCrLf & vbCrLf
G_RECEIVED = 0
G_DONE = False
While Not G_DONE
DoEvents
Wend
' hop, le contenu du fichier est dans G_RECEIVED
' on peut faire ce qu'on veut ici, clore le socket, etc.
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim s As String
Static ss As String
Static allBytes As Long
Dim p1 As Long
Static expected_length As Long
Winsock1.GetData s
If expected_length = 0 Then
p1 = InStr(s, "Content-Length:")
If p1 Then
expected_length = Val(Mid$(s, p1 + 15, InStr(p1, s,
vbCrLf) - 1)) + Len(Mid$(s, 1, InStr(s, vbCrLf & vbCrLf))) + 3
Label2.Caption = expected_length
End If
End If
ss = ss & s
allBytes = allBytes + bytesTotal
Label1.Caption = allBytes
Label1.Refresh
If allBytes = expected_length Then
G_RECEIVED = ss
G_DONE = True
ss = ""
allBytes = 0
expected_length = 0
End If
End Sub
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
"Fabien Gouverneur" a écrit dans le message de news:43a6b593$0$23966$
Bonjour à tous !
J'ai une petite question ? Voici mon probleme : J'ai un mouchard sur un serveur web au format
txt, il
s'agit d'un fichier ou sont enregistrer toutes les erreurs qui se sont produite au niveau des requettes sql. Je télécharge à la main : et j'utilise un programme VB6 qui le lit et m'extrait les messages que je recherche. Mon fichier fait plus de
19000
lignes, et en offline pas de problemes.
Ce que je recherche s'est la possibilité d'utiliser le contrôle
winsock pour
injecter dans une variable tout mon fichier et ensuite effectuer
toutes une
série de traitement sur celui-ci.
Est-ce que je ne suis pas trop hors limite dans un tels cas de figure
?
Pourquoid essayer d'effectuer un traitement in line alors que cela
irrait
plus cite de le télécharger et de l'utiliser offline - ben tout
simplement
parcequ'il évolue en permanence !
Des idées pour obtenir un code efficace ?
Hop, voici un exemple tout fait, testé et qui fonctionne bien. On peut améliorer très nettement les perfs si besoin est en utilisant une meilleure technique pour la concaténation que le simple '&' de VB (dont les perfs sont vraiment très mauvaises). Bref voici le code, il récupère un fichier de 1 Méga en moins de 3 secondes sur un serveur avec un upload convenable:
Option Explicit Dim G_DONE As Boolean Dim G_RECEIVED As String
Private Sub Command1_Click() Winsock1.Close Winsock1.RemoteHost = "ADRESSE.DU.SERVEUR" Winsock1.RemotePort = 80
Winsock1.Connect DoEvents While Winsock1.State <> 7 DoEvents DoEvents Wend
' indiquer dans le GET l'url de la ressource recherchée. Winsock1.SendData "GET /test.txt HTTP/1.0" & vbCrLf & vbCrLf
G_RECEIVED = 0 G_DONE = False While Not G_DONE DoEvents Wend ' hop, le contenu du fichier est dans G_RECEIVED ' on peut faire ce qu'on veut ici, clore le socket, etc. End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim s As String Static ss As String Static allBytes As Long Dim p1 As Long Static expected_length As Long
Winsock1.GetData s If expected_length = 0 Then p1 = InStr(s, "Content-Length:") If p1 Then expected_length = Val(Mid$(s, p1 + 15, InStr(p1, s, vbCrLf) - 1)) + Len(Mid$(s, 1, InStr(s, vbCrLf & vbCrLf))) + 3
Label2.Caption = expected_length End If End If ss = ss & s allBytes = allBytes + bytesTotal Label1.Caption = allBytes Label1.Refresh If allBytes = expected_length Then
G_RECEIVED = ss G_DONE = True ss = "" allBytes = 0 expected_length = 0 End If End Sub
-- Jean-marc Tester mon serveur (VB6) => http://myjmnhome.dyndns.org "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;