LIRE DONNE D'UN FICHIER.htlm et non d'une page html en vb6

Résolu
FOUNI Messages postés 28 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 8 mars 2013 - 13 juil. 2009 à 12:24
FOUNI Messages postés 28 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 8 mars 2013 - 23 juil. 2009 à 19:12
Bonjour,

je programmais en vba et je programme depuis peu en vb6

après avoir rechercher sur le forum des explications et un exemple de programmation ado , je me tourne vers vous pour m'aider

voilà
j'ai un fichier (dont le nom est   dud.html  ) qui contient   les données d'un logitiel , et je n'ai pas le choix de l'extension 
ce fichier est dans un répertoire c:\documents and setting\tout\, mais il pourra changer de place dans l'avenir
ce fichier s'ouvre avec excel
je pourrai vous le joindre mais je ne sais pas comment faire, désolé, d'ailleur si vous pouvez me l'enseigner merci
j'ai un projet    VB6 avec un MSflexgrid1 

j'aimerai   récupérer les donner de ce fichier qui contient des cases vide également et le placer dans le MSflexgrid1

mais sans l'ouvrir  avec une connextion style ado 

j'ai besoin d'un code pour pouvoir modifier le chemin si nécessaire

je sais récupérer des données d'un fichier excel  mais pas  quand l'extension est .html cela ne marche pas

merci
merci
si vous pouvez m'aider

 

    

27 réponses

FOUNI Messages postés 28 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 8 mars 2013
23 juil. 2009 à 19:12
MERCI, cela confirme ce que je pensais , il faut que je prenne des cours car la bidouille sous excel passe encore,mais pas avec d autre langage , si on est pas struturé , on fini par chercher MIDI A QUATORZE HEURE, j'utilise pas assez les fonctions .



patiente et longueur de temps font plus que force et que rage
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
13 juil. 2009 à 12:52
salut,

pas de possibilité de joindre directement un fichier, tu peux passer par un site d'upload gratuit, il y en a des tas
www.cijoint.fr
dl.free.fr
etc...

mais il nous faut la structure pour t'aider oui :
est-ce juste l'extension? ou tes données sont dans des balises <tr> <td>

pour ouvrir un fichier (peu importe son extension), voir www.codyx.org

ensuite INSTR te retourne la position d'une chaine dans une autre
tu peux récupérer par tronçon (comme entre et
)
encore un snippet pratique sur codyx pour çà :
http://www.codyx.org/snippet_recuperer-chaine-inconnue-placee-entre-deux-chaines-connues_334.aspx#1043

possible aussi de passer par les regexp

voilà pour commencer ;)
++

0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
13 juil. 2009 à 12:57
Salut
"ce fichier s'ouvre avec excel" : Comment fais-tu ?
S'agit-il d'un fichier CSV, c'est à dire du texte avec des séparateurs, parce que l'extension du fichier importe peu, du moment que le logiciel reconnait la structure.
Peut-être d'un fichier XML ?

"mais sans l'ouvrir  avec une connextion style ado" : Sans l'ouvrir ? bah si, faudra bien, à un moment ou un autre.
ADO ne s'applique qu'à des données organisées pour cela. Tant qu'on ne saura pas ce qu'il y a dans le fichier, difficile à dire.

"j'ai besoin d'un code pour pouvoir modifier le chemin" Ca, c'est le B.A.BA, quand il n'y aura plus que ça à résoudre ...

Est-ce que tu peux ouvrir le ficher dans WordPad ? Y vois-tu les données en clair ?
Si oui, colle nous quelques exemples.
Si non, il va falloir trouver comment est organisé le fichier pour retrouver son type, donc sa méthode d'ouverture.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
FOUNI Messages postés 28 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 8 mars 2013
13 juil. 2009 à 14:06
merci pour les réponses

j ai encore beaucoup  de chemin  pour tout comprendre

quand je parle de ne pas l'ouvrir , je veux dire sans qu'il apparaisse en icone comme dans vba thisworkbook.open

comment je peux vous envoyer mon fichier.html sur le forum en pièce jointe??????????

pour vous faciliter la tache pour la réponse

autrement
voilà ce que j'ai réussi à faire

j'ai  trouvé une solution mais en passant par acces , grace aux lien entre les tables, je recupère les donnes 
 du fichier .html et je les place dans une table Acces et ensuite je recupere les donnes dans mon projet vb6 , mais je ne peux pas modifier le chemin d'acces , c'est Acces qui fait le code , et je ne sais pas où le récupérer

MERCI pour le temps passé et l aide très précieuse
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
13 juil. 2009 à 14:20
pour envoyer le fichier -> voir mon premier post

pourquoi passer par access si tu est en VB6?!
pourquoi parler de thisworkbook si tu es en VB6?

tu n'as répondu à aucune de nos questions, à part te donner du temps, on ne pourra pas beaucoup t'aider dans ces conditions
0
FOUNI Messages postés 28 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 8 mars 2013
13 juil. 2009 à 15:04
Désolé,   

j ai placé le fichier dans modifier l'extension en .xls car .html pas possible sur ce lienje pense que je suis pas assez précis est-ce juste l'extension? ou tes données sont dans des balises <tr> <td>, il faut que je cherche ce que cela veut dire www.cijoint.fr

j'ai modifier l'extension en .xls car .html pas possible sur ce lien

je pense que je suis pas assez précis 

est-ce juste l'extension? ou tes données sont dans des balises <tr> <td>, il faut que je cherche ce que cela veut dire


le fichier dud.html   lorsque je l'ouvre sur un pc non connecter a internet , en haut de la barre où l on indique normalement , http\\ 

il y a d'écrit [file:/// file:///] et le chemin où se trouve mon fichier ex c:/documents and setting/dud.html

pour info

quand je récupère les donnés du logitiel , il faut que" j'enregistre sous format html ", j'aurais préféré avoir enregistrer sous excel
 
autrement je n'ai pas essayé d ouvrir avec WordPad ,il faut que je le delecharge

je parlais de  thisworkbook pour vous indiquer que je ne désire pas que le fichier s'ouvre en grand , mais je comprend que cette info est inutile

je passe par acces car cela fonctionne et que en vb6 je ne sais pas comment faire, c'était juste une info que je pensais utile

peut être qu'il suffirait  avec un code VB6 de modifier l'extension de . html vers .xls pour que cela fonctionne  

j'essaye d'être le plus à l'écoutre possible pour que l'on m'aide , mais je suis débutant et je pense qu'il faudrait que je suive une formation ou que j'aille sur le même forum mais débutant

merci

  
0
FOUNI Messages postés 28 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 8 mars 2013
13 juil. 2009 à 15:07
encore moi , il y a d'écrit [http://www.vbfrance.com/c.aspx?u=ZmlsZTovLy8= [ Lien ]]

  avant d'envoyer  le message j'avais écrit file suivit de : et de  ///

MERCI
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
13 juil. 2009 à 15:25
... bon!

*bouton démarrer, dans la zone executer, tape NOTEPAD
*un éditeur s'ouvre
*glisse ton fichier HTML directement dans cette fenêtre (notepad)

sélectionne tout, et copie le ici

ps : malgré tes efforts, ta demande reste des plus incompréhensible, es-tu certain d'être sous VB6 ???
(et non VBA)
0
FOUNI Messages postés 28 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 8 mars 2013
13 juil. 2009 à 16:41
j'espère que vous avez eu les infos

encore merci
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
13 juil. 2009 à 19:54
FOUNI : On veut simplement savoir à quoi ressemble le texte/les données à l'intérieur de ton fichier.
Le fichier lui-même n'a pas d'importance, tu l'ouvres avec NOTEPAD et tu en copie/colle quelques lignes ICI, avec un Ctrl-V
0
FOUNI Messages postés 28 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 8 mars 2013
13 juil. 2009 à 20:47
J' ai déjà tout envoyé mais je pense qu'il y a eu un problème

, je confirme que je suis en vb6

Je continu a chercher ,il s'emblerai que je dois récupérer le code du fichier dans un textbox ou autre 

méthode trouvé ,exemple

Dim
contenuHTML As StringPrivate Sub Form_Load()
    WebBrowser1.Navigate2 "http://www.codes-sources.com"End SubPrivate Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    contenuHTML =  WB.Document.documentElement.innerHTMLEnd Sub
et que je récupère que le texte

mais je n'ai pas trouvé le WebBrowser1 dans les composant VB6 et comment placer les info au final dans mon MSflexgrid

VOICI UNE PARTI DE MON FICHIER
<HTML>
<HEAD>
<TITLE>C:\Documents and Settings\H59130\Bureau\dud de CCPULSE INVISION\SIMM MOB TOULON</TITLE>
</HEAD>

SIMM MOB TOULON
<HR COLOR #0000FF SIZE 2>
<TABLE BORDER >
<TR><TD  BGCOLOR #C8C8C8  > </TD><TD  BGCOLOR #C8C8C8  >Actuellement</TD><TD  BGCOLOR = #C8C8C8  > Actuellement </TD><TD  BGCOLOR = #C8C8C8  >Actuellement</TD><TD  BGCOLOR = #C8C8C8  > Actuellement </TD><TD  BGCOLOR = #C8C8C8  >Dans la journée</TD><TD  BGCOLOR = #C8C8C8  > Dans la journée </TD><TD  BGCOLOR = #C8C8C8  >Dans la journée</TD><TD  BGCOLOR = #C8C8C8  > Dans la journée </TD><TD  BGCOLOR = #C8C8C8  >Dans la journée</TD><TD  BGCOLOR = #C8C8C8  > Dans la journée </TD><TD  BGCOLOR = #C8C8C8  >Dans la journée</TD><TD  BGCOLOR = #C8C8C8  > Dans la journée </TD></TR>
<TR><TD  BGCOLOR #C8C8C8  ><gras>Dans la journée</TD><TD  BGCOLOR</gras> #C8C8C8  >Activité</TD><TD  BGCOLOR = #C8C8C8  >Etat</TD><TD  BGCOLOR = #C8C8C8  >Durée</TD><TD  BGCOLOR = #C8C8C8  >technique:Etat en cours à</TD><TD  BGCOLOR = #C8C8C8  >Log</TD><TD  BGCOLOR = #C8C8C8  >Indispo</TD><TD  BGCOLOR = #C8C8C8  >Post-Appel</TD><TD  BGCOLOR = #C8C8C8  >Tx Activ. Tél.</TD><TD  BGCOLOR = #C8C8C8  >Décrochés</TD><TD  BGCOLOR = #C8C8C8  >Productivité</TD><TD  BGCOLOR = #C8C8C8  >Tps Moyen de Conv entrante</TD><TD  BGCOLOR = #C8C8C8  >Rotations</TD></TR>
<TR><TD  BGCOLOR #C8C8C8  > LEO.Florence </TD><TD  BGCOLOR #DFE2C3  ></TD><TD  BGCOLOR = #DFE2C3  ></TD><TD  BGCOLOR = #DFE2C3  ></TD><TD  BGCOLOR = #DFE2C3  >LoggedOut (09:44:43)</TD><TD  BGCOLOR = #DFE2C3  >00:00:00</TD><TD  BGCOLOR = #DFE2C3  >00:00:00</TD><TD  BGCOLOR = #DFE2C3  >00:00:00</TD><TD  BGCOLOR = #DFE2C3  >0</TD><TD  BGCOLOR = #DFE2C3  >0</TD><TD  BGCOLOR = #DFE2C3  >0</TD><TD  BGCOLOR = #DFE2C3  >00:00:00</TD><TD  BGCOLOR = #DFE2C3  >0</TD></TR>
<TR><TD  BGCOLOR #C8C8C8  > PINT.Nathalie </TD><TD  BGCOLOR #F0F5DC  ></TD><TD  BGCOLOR = #F0F5DC  ></TD><TD  BGCOLOR = #F0F5DC  ></TD><TD  BGCOLOR = #F0F5DC  >LoggedOut (09:44:42)</TD><TD  BGCOLOR = #F0F5DC  >00:00:00</TD><TD  BGCOLOR = #F0F5DC  >00:00:00</TD><TD  BGCOLOR = #F0F5DC  >00:00:00</TD><TD  BGCOLOR = #F0F5DC  >0</TD><TD  BGCOLOR = #F0F5DC  >0</TD><TD  BGCOLOR = #F0F5DC  >0</TD><TD  BGCOLOR = #F0F5DC  >00:00:00</TD><TD  BGCOLOR = #F0F5DC  >0</TD></TR>
<TR>

.LE NOM DE MON FICHIER TEST EST Y.html

merci énormément
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
13 juil. 2009 à 22:47
ton fichier html est truffé d'erreurs.....
bref, c'est faisable, évidemment!

qu'as-tu fait comme code pour commencer?

voici les snippets que j'ai utilisé :
http://www.codyx.org/snippet_lire-totalite-contenu-fichier_47.aspx#133
http://www.codyx.org/snippet_recuperer-chaine-inconnue-placee-entre-deux-chaines-connues_334.aspx#1043
http://www.codyx.org/snippet_convertir-couleur-long-code-html-vice-versa_254.aspx#818

puis une petite routine d'une 60ène de lignes , et voici le résultat :

à ton tour


0
FOUNI Messages postés 28 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 8 mars 2013
13 juil. 2009 à 22:50
Je continu mes  recherche , j'ai réussi a placer les  éléments de mon fichier.html dans un WebBrowser1 mais maintenant je dois récupérer le texte pour le placer dans un MSflexgrid

pour pouvoir l utliser dans mon projet

bonne nuit
0
FOUNI Messages postés 28 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 8 mars 2013
13 juil. 2009 à 23:04
JE vois que je suis tombé sur une personne très qualifié 

qu'as-tu fait comme code pour commencer?  POUR COMMENCER QUOi ?? LE PROJET VB6

je vais essayer de comprendre la démarche , si j'ai bien compris vous avez réussi à lire le code html et placer les résultats dans un form sous VB6

si j'ai bien compris , vous êtes super fort

merci

pour la recherche  vu   l heure 

bonne nuit 

   
0
FOUNI Messages postés 28 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 8 mars 2013
14 juil. 2009 à 11:31
bonjour pcpt,

je suis tes conseils   , et je comprends le principe avec les fonctions que tu m'as indiqué

En ce concerne le fichier html , je n'ai pas le choix , ce n'est pas moi qu'il l' ai créé

Si tu le permets , je désirerais ne pas cloturer la discution , car j'aimerai reproduire ce que tu as fait ( sans prétention) 

Comment incrire les données extraite du fichier html , dans un msflexgrid ou listview ,

d ailleurs as tu utilisé cette méthode?

faut-il faire une boucle pour récupérer toutes les valeurs?

Bon je percévère  , encouragé par des personnes comme toi qui prennent le temps pour aider les autres
 

respect

 


 
 
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
14 juil. 2009 à 12:20
j'ai détaillé la démarche en page1 de ce topic

lecture fichier (pas par un webbrowser, snippet lire fichier)
récupération de la partie <TABLE

boucle TR
  sous-boucle TD
    écriture msflex

pas de "tout cuit" comme indiqué dans le règlement, je t'aiderai avec du code lorsque tu auras montré le tien, avec les passages sur lesquels tu bloques

++

0
FOUNI Messages postés 28 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 8 mars 2013
17 juil. 2009 à 19:58
BONJOUR

je continu de chercher mais j ai beaucoup de mal car trop de lacune

je m'inspire de plusieurs codes et je mélange tout je pense
j'ai reussi à lire le ficher et faire une boucle mais le résultat n'est pas parfait

j'essaye pour l'instant de visualiser les données , je verrai apres pour les inscrire dans un flexgrid
voici mon code
Private Sub Command1_Click()


Dim Readlen As Long, ReadStr As String, FileLen As Long
Dim TheFile As String, FileNum As Integer

Readlen = 500 ??? JE PENSE QUE CELA n'est pas bon



TheFile = App.Path & "\Y.html" adresse de mon fichier




Open TheFile For Binary Access Read As 1



FileLen = LOF(1) 'Get length of file.
Cpos = 0 'current Position

Do While Cpos < FileLen
If (Cpos + Readlen) > FileLen Then
ReadStr = Input(FileLen - Cpos, 1)
Cpos = FileLen
Else
ReadStr = Input(Readlen, 1)
Cpos = Cpos + Readlen
End If
expression = MyMid(ReadStr, ">", "<")

Loop



End Sub



Private Function MyMid(ByRef expression As String, sLeft As String, sRight As String, Optional Start As Long = 1) As String


Dim lPosL As Long, lPosR As Long
lPosL InStr(Start, expression, sLeft): lPosR InStr(lPosL + 1, expression, sRight)
If lPosL > 0 And lPosR > 0 Then
MyMid = Mid$(expression, lPosL + Len(sLeft), lPosR - lPosL - Len(sLeft))
Else
MyMid = vbNullString
End If



End Function






merci de m'aider si possible



j 'essaye d'avancer au plus vite mais durdur

BONNE JOURNEE



FOUNI
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
17 juil. 2009 à 22:17
salut,

Readlen = 500 ??? JE PENSE QUE CELA n'est pas bon
en effet

Open TheFile For Binary Access Read As 1
pourquoi pas, et où est le close ??


expression = MyMid(ReadStr, ">", "<")
où est déclarée expression?
que fais-tu du contenu?
tu ne cherches ni TD ni TR..., expression peut très bien être vide, pour un bout de chaine comme <tr><
td>


je ne vois pas (par ton code) la chaine que tu espères récupérer
0
FOUNI Messages postés 28 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 8 mars 2013
18 juil. 2009 à 13:16
SALUT,


j'ai mis Public expression As String

le close est situé après le loop , désolé je ne l'ai pas copié



je viens de comprendre ce que tu as dit par rapport au boucle sur <tr><td>


j'essaye aussi avec cette méthode

Data = ReadFile(App.Path & "\Y.html")

Function ReadFile(ByVal FileName As String) As String
Dim Free As Integer
Free = FreeFile()
Open FileName For Binary As Free
ReadFile = String(LOF(1), 0)
Get Free, , ReadFile
Close Free
End Function

mais où faire la boucle ???

"je ne vois pas (par ton code) la chaine que tu espères récupérer"

Comme tu le vois je suis perdu , pour l instant je visualise ce que fait le code avec la touche F8,

IL FAUT QUE JE COMPRENNE LE FONCTIOMMENT DES CHAINES ET QUE JE FASSE LA BOUCLE SUR TR TD

CE code est important pour moi , cela pourrait m'aider dans mon travail même si je ne suis pas dans le développement d'outil , c'est pour le plaisir

JE CONTINU ,connais tu des personnes ou ouvrages ou exemple de code qui pourrait m'aider

je trouve des projets ou codes mais pour c++ OU VB2005 OU VB.NET


JE NE VEUT PAS TE FAIRE PERDRE TON TEMPS , MON NIVEAU est faible et je suis lent , manque de méthode surtout, mais pas de motivation




merci
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
18 juil. 2009 à 13:47
côté ouvrage, le "magnum VB6" de campus press est très bien, même juste au dessus du niveau débutant

cherche-le d'occasion (avec le cd d'exercices si possible)
NB : il y en a eu bien d'autres depuis, peut-être de meilleurs...


je vois bien que tu veux apprendre et comprendre, c'est pour çà que je n'ai pas copié directement la réponse
(j'ai gardé le code de côté, au besoin...)


sans te donner de code, j'ai mis exactement le fonctionnement...
je vois mal comment en dire plus sans en dire trop ^^

je peux te montrer le début si tu veux ? (encore que, j'ai parlé de boucles donc une fois le début fait... la fin aussi)


bon, reprenons!

tu as ton fichier, tu sais le lire, çà c'est bon :
Data = ReadFile(App.Path & "\Y.html")

ensuite il faut virer ce qui dérange.
tu veux juste le tableau. il faudrait donc récupérer la chaine entre et

ceci est faisable facilement avec la fonction MyMid
problème : ton html est mal fait, il manque la balise de fin!

donc on va directement supprimer tout ce qui se trouve avant le premier <TR>
INSTR va retourner la position
MID va renvoyer un tronçon

data = Mid$(data, InStr(1, data, "<TR>"))

à ce moment, data contient plus ou moins :
<tr>
  <td>blabla</td>
  <td>blabla</td>
</tr>
<tr>
  <td>blabla</td>
  <td>blabla</td>
</tr>


ou presque : pas aussi bien mis en page, et avec des balises inutiles
on a par exemple des qui ne servent à rien, sans balise

autant y voir plus clair en les supprimant
data = replace(data, "", vbnullstring)


là déjà, on y voit plus clair !
reste :
boucler sur tous les <TR>
comment faire? récupérer le texte au milieu, MyMid entre <TR> et </TR>, et supprimer de data (comme un tampon) ce qu'on vient de récupérer

le tronçon récupéré (action en boucle donc, RAPPEL) contient nos <TD>
pareil, boucle avec mymid entre chaque <TD> </TD>....


j'espère que c'est maintenant vraiment plus clair, prochaine étape.... je ne sais pas
0
Rejoignez-nous