FOUNI
Messages postés28Date d'inscriptiondimanche 8 juillet 2007StatutMembreDernière intervention 8 mars 2013
-
13 juil. 2009 à 12:24
FOUNI
Messages postés28Date d'inscriptiondimanche 8 juillet 2007StatutMembreDerniè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
FOUNI
Messages postés28Date d'inscriptiondimanche 8 juillet 2007StatutMembreDerniè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
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
FOUNI
Messages postés28Date d'inscriptiondimanche 8 juillet 2007StatutMembreDerniè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
Vous n’avez pas trouvé la réponse que vous recherchez ?
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
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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
FOUNI
Messages postés28Date d'inscriptiondimanche 8 juillet 2007StatutMembreDerniè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>
FOUNI
Messages postés28Date d'inscriptiondimanche 8 juillet 2007StatutMembreDerniè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
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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
FOUNI
Messages postés28Date d'inscriptiondimanche 8 juillet 2007StatutMembreDerniè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
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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
FOUNI
Messages postés28Date d'inscriptiondimanche 8 juillet 2007StatutMembreDerniè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
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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
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