[XL2000][XML] Comment importer downloads.rdf dans Excel (Téléchargements Firefox)

Staple1600

XLDnaute Barbatruc
Bonjour à tous

EDITON: cela concerne Firefox 2.xx (Pas Firefox 3 qui utilise le format sqlite)

J'essaie d'importer directement downloads.rdf dans une feuille Excel (J'arrive à le faire à la "mimine" en l'ouvrant en fichier texte et en utilisant e filtre automatique et Edition/Remplacer)

Je pensais que ce fichier était un fichier XML classique. Mais impossible de l'ouvrir avec le classeur de MichelXLD présent dans ce fil Parseur XML

Suite à une autre de mes questions autour de Firefox ,MichelXLD avait réalisé en 2007 une macro pour importer history.dat dans Excel (cf Importer historique Firefox *
mais ici le format de fichier était différent (dork file)

Donc avis aux forumeurs et à MichelXLD.

Comment faire pour récupérer les infos de ce fichier par macros en utilisant MSXML2.DOMDocument ?

Le but étant de pouvoir sauvegarder les infos qu'il contient, pour ensuite effacer l'historique des téléchargement de Firefox.

Précisions: j'utilise Excel 2000 (j'ai testé avec un fichier XML classique, et XMLAnalysis fonctionne. Je suppose que le format RDF n'est pas un format XML classique.

Merci à ceux qui sauront m'aider et bon week-end à tous.

EDITION II: Sans utiliser MSXML2.DOMDocument et en remaniant le code *
j'arrive à importer les données mais à la fin de la macro j'ai ce message d'erreur
erreur.jpg
Code:
Sub ExtraireRDF_parVBA_Sans_XML()
Dim CibleLigne$, Fichier$, Resultat$, Valeur#
Dim Place#, Fin#, Debut#, x#, y#, i%
Dim j As Byte

Fichier = "C:\downloads.rdf"
Open Fichier For Input As #1: Valeur = FileLen(Fichier): CibleLigne = Input(Valeur, 1)
Close 1

Debut = 1
Do While InStr(Debut, CibleLigne, "") <> 0
    Place = InStr(Debut, CibleLigne, "RDF:resource=")
    Fin = InStr(Place, CibleLigne, ")")
    Resultat = _
    Replace(Replace(Mid(CibleLigne, Place, Fin - Place), vbCrLf, ""), Chr(10), "")

If InStr(1, Resultat, "pagead2.googlesyndication.com") = 0 Then
i = i + 1
'place les Url dans la Feuil2
Set F = Worksheets("Feuil2")
'URL de téléchargement
F.Cells(i, 1) = _
Replace(Replace(Split(Resultat, "   ")(0), "RDF:resource=""", ""), """/>", "")
'emplacement sur le disque  dur du fichier téléchargé
F.Cells(i, 2) = _
Replace(Replace(Split(Resultat, "   ")(1), " <NC:File RDF:resource=""", ""), """/>", "")
'Date du téléchargemnt
'F.Cells(i, 3) = _
'Replace(Replace(Split(Resultat, "   ")(2), " <NC:DateStarted NC:parseType=""Date""", ""), """/>", "")
       
End If
Debut = Fin
Loop

Columns("A:B").AutoFit
End Sub
 

Fichiers joints

Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : [XL2000][XML] Comment importer downloads.rdf dans Excel (Téléchargements Firefox

Bonjour Said

Merci pour ton lien.
Mais en fait je n'ai pas de problème de téléchargement avec Firefox.

C'est juste la curiosité qui me pousse.

• Je récapitule le pourquoi du comment:

Quand tu télécharges un ficher avec Firefox 2.xx, l'adresse d'origine , le nom du fichier et la la date de téléchargement sont stockés dans un fichier nommé: downloads.rdf stocké dans le profil de l'utilisateur.

•Ce que j'aimerai faire c'est importé ce fichier dans Excel en utilisant le langage XML.

J'arrive à faire l'importation avec la macro de mon précédent message (même si elle bug en fin d'éxécution --> si quelqu'un peut me dire pourquoi, merci à lui.

Exemple de contenu du fichier downloads.rdf
</RDF: Description>
<RDF: Description RDF:about="C:\WINDOWS\Bureau\extraction_mots_des_cellules_v03.zip"
NC:Name="extraction_mots_des_cellules_v03.zip"
NC:Transferred="13 Ko sur 13 Ko">
<NC:URL RDF:resource="http://www.excel-downloads.com/forum/attachments/forum-excel-downloads-archives/5209-extraction-de-mots-dans-une-phrase-extraction_mots_des_cellules_v03.zip"/>
<NC:File RDF:resource="C:\WINDOWS\Bureau\extraction_mots_des_cellules_v03.zip"/>
<NC: DateStarted NC: ParseType="Date">Mon Sep 29 17:12:12 Paris, Madrid (heure d'été) 2008 +810000</NC: DateStarted>
<NC: DateEnded NC: ParseType="Date">Mon Sep 29 17:12:13 Paris, Madrid (heure d'été) 2008 +140000</NC: DateEnded>
Entête de ce fichier:
<?xml version="1.0"?>
<RDF:RDF xmlns:NC="http://home.netscape.com/NC-rdf#"
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
 
Dernière édition:

tactic6

XLDnaute Impliqué
Re : [XL2000][XML] Comment importer downloads.rdf dans Excel (Téléchargements Firefox

Re
je ne sais pas si ça peut aider mais il y a une extension pour firefox qui
Code:
Permet de copier vers le presse-papier ou vers un tableur (Microsoft Excel, OpenOffice Calc,...) des cellules, des lignes ou des colonnes depuis un tableau HTML.

    * Pour sélectionner les cellules dans un tableau, appuyez sur la touche Ctrl et cliquez sur les cellules désirées.
    * Dans le menu contextuel, cliquez ensuite sur Copier les éléments du tableau.
va voir cette extension
HTML:
https://addons.mozilla.org/fr/firefox/downloads/file/30339/table2clipboard-0.1.1-fx+mz+tb+sm.xpi
 

Staple1600

XLDnaute Barbatruc
Re : [XL2000][XML] Comment importer downloads.rdf dans Excel (Téléchargements Firefox

Re , bonjour tactic6

Merci de ton intérêt

J'ai vu aussi qu'il y avait un addon RDF Viewer

Mais ce que je veux faire c'est bien d'utiliser Excel pour importer ce fichier

Juste Excel, VBA et MSXML2.DOMDocument. ;)
 
Dernière édition:

BERRACHED said

XLDnaute Accro
Re : [XL2000][XML] Comment importer downloads.rdf dans Excel (Téléchargements Firefox

Bonsoire Staples1600,tactic6

sans étre complétement a coté je crois qu'il faut déclarer (Début,Fin,Place) as double :
Code:
  Dim Place As Double, Fin As Double, Debut As Double
j'ai trouver chez moi un code similaire c'est a toi d'apprécier mais je crois que le principe est le même :
Code:
Sub ExtraireURL_History_FireFox()
    Dim CibleLigne As String
    Dim Fichier As String, Resultat As String
    Dim Valeur As Double
    Dim Place As Double, Fin As Double, Debut As Double
    Dim x As Double, y As Double
    Dim i As Integer
    
    Fichier = "C:\Documents and Settings\nom_utilisateur\...\Firefox\...\history.dat"
    
    'Lit le contenu du fichier
    Open Fichier For Input As #1
        Valeur = FileLen(Fichier)
        CibleLigne = Input(Valeur, 1)
    Close 1
 
    Debut = 1
    
    'Boucle sur les chaines commençant par http
    Do While InStr(Debut, CibleLigne, "http") <> 0
        Place = InStr(Debut, CibleLigne, "http")
        Fin = InStr(Place, CibleLigne, ")")

        Resultat = Replace(Replace(Mid(CibleLigne, Place, Fin - Place), _
            vbCrLf, ""), "\", "")
        
        If InStr(1, Resultat, "pagead2.googlesyndication.com") = 0 Then
            i = i + 1
            'place les Url dans la Feuille
            Worksheets("Feuil1").Cells(i, 1) = Resultat
            
            'Recherche les dates
            x = InStr(Fin, CibleLigne, "=")
            y = InStr(x, CibleLigne, ")")
            
            If IsNumeric(Mid(CibleLigne, x + 1, y - x - 1)) Then _
                Worksheets("Feuil1").Cells(i, 2) = _
                Timestamp_To_Date(Left(Mid(CibleLigne, x + 1, y - x - 1), 10), 1970)
        End If
    Debut = Fin
    Loop 
    Columns("A:B").AutoFit
End Sub
Cordialement
 

Staple1600

XLDnaute Barbatruc
Re : [XL2000][XML] Comment importer downloads.rdf dans Excel (Téléchargements Firefox

Re à tous

Said , ton code, c'est le code que je cite dans mon premier message :rolleyes:

(C'est la réponse à la question que j'avais posé dans le fil que je cite dans mon premier message)

Et Dim Place# et Dim Place As Double c'est équivalent !

Voir ici pour les explication :
http://www.excel-downloads.com/forum/81052-vba-types-de-variables.html

En tout cas, je n'ai pas trouvé pourquoi cela buggue à la fin (car l'import se fait quand même)
 

Staple1600

XLDnaute Barbatruc
Re : [XL2000][XML] Comment importer downloads.rdf dans Excel (Téléchargements Firefox

Re à tous

Je n'ai pas trouvé pour le moment ni comment utiliser MSXML2.DOMDocument
pour importer downloads.rdf dans Excel ni pourquoi le code posté dans mon premier message (•) produit un bug.

J'ai donc utiliser une autre méthode qui elle fonctionne.
(Voir le code VBA ci-dessous)

(Merci aux VBAIstes du forum de m'indiquer s'il y a des fautes de syntaxe)

Code:
Sub ImportRDF()
Dim fc$, FSO, f, i&, j&
Dim c As Range: Dim rng As Range
i = 1
fc = "C:\downloads.rdf"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set f = FSO.OpenTextFile(fc, 1, 0)
Do While f.AtEndOfLine <> True
L = f.ReadLine
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Sheets("Feuil1").Cells(i, 1) = Application.Trim(L)
i = i + 1
Loop
f.Close
rtsc = "<NC:²>²<²RDF²:resource²:about²:"
vr = Split(CStr(rtsc), "²")
With Sheets("Feuil1")
.Range("A1:A" & [A65536].End(xlUp).Row).TextToColumns Range("A1"), 1, , , , , , , True, "="
    For Each c In .UsedRange
        If Not IsEmpty(c) Then
        For j = 0 To 6
        c = Replace(c.Text, vr(j), vbNullString)
        Next
        End If
    Next
    For Each rng In .Range("A1:A" & [A65536].End(xlUp).Row)
    rng.Value = Replace(rng.Text, "/", "")
    Next
.Columns("A:B").Columns.AutoFit
End With
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = True
End Sub
La question reste toutefois posée concernant le but initial de ce post.

En attendant de vous lire, je souhaite à tous un bon week-end.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : [XL2000][XML] Comment importer downloads.rdf dans Excel (Téléchargements Firefox

Re à tous

Je n'ai pas toujours pas trouvé la réponse à cette question

(Utiliser le langage XML pour importer un fichier RDF)

Mais je vous livre le résultat de mes essais * avec d'autres méthodes.

Ce serait sympa que ceux (que cela intéresse) jouent les béta-testeurs ;)

et m'envoie dans ce post leur feedback.

Pour tester le fichier, décompresser les deux fichiers
• ImportRDFv2b.xls
• downloads.rdf
à la racine de votre disque C
(Donc C:\ )

Ensuite utiliser la barre d'outils (Il y deux méthodes d'importation distinctes) pour importer le fichier downloads.rdf dans le classeur.

Merci à tous ceux qui prendront le temps de tester ce classeur
et de donner leur avis.

Bon dimanche.


*: essais en compilant , modifiant du code VBA trouvé ici sur (le forum) et là.
ailleurs sur la toile.
 

tactic6

XLDnaute Impliqué
Re : [XL2000][XML] Comment importer downloads.rdf dans Excel (Téléchargements Firefox

Bonjour tout le monde

Voici donc les résultats (si j'ai bien compris)
la méthode 2 sur la feuil1 fait un plantage excel magnifique
 

Fichiers joints

Staple1600

XLDnaute Barbatruc
Re : [XL2000][XML] Comment importer downloads.rdf dans Excel (Téléchargements Firefox

Re

Merci d'avoir testé .

Pour l'erreur, tu remarqueras dans le titre de mon post que le code VBA est fait en priorité pour fonctionner sous Excel 2000.

Sous Excel 2007, ça doit être le code ci-dessous qui plante (sans certitude)
(N'ayant pas Excel 2007 , je ne peux pas tester)

Code:
Private Sub cdBCharger_Click()
Dim f
f = [B]Application.GetOpenFilename[/B](, , "Sélectionnez votre fichier :downloads.rdf")
tBxFichier.Text = CStr(f)
End Sub
 
Dernière édition:

tactic6

XLDnaute Impliqué
Re : [XL2000][XML] Comment importer downloads.rdf dans Excel (Téléchargements Firefox

Re
je précise que le plantage ne se fait que sur la feuille 1 par sur la 2
Cordialement
 

skoobi

XLDnaute Barbatruc
Re : [XL2000][XML] Comment importer downloads.rdf dans Excel (Téléchargements Firefox

Bonsoir tout le monde :),

JM, aucun bug à signaler avec excel2003.

Bonne soirée
 

Staple1600

XLDnaute Barbatruc
Re : [XL2000][XML] Comment importer downloads.rdf dans Excel (Téléchargements Firefox

Re à tous, bonsoir Skoobi


Tant mieux ! Merci d'avoir testé.

Skoobi :Si tu as le temps, pourrais tu m'indiquer, stp, si tu vois des erreurs de syntaxe VBA ou des améliorations du code à effectuer. Merci.

Bonne fin de dimanche à tous.


PS: je cherche toujours à répondre à question initiale ;)

Comment faire pour récupérer les infos de ce fichier par macros en utilisant MSXML2.DOMDocument ?

 
Dernière édition:

skoobi

XLDnaute Barbatruc
Re : [XL2000][XML] Comment importer downloads.rdf dans Excel (Téléchargements Firefox

Re salut JM :),

après lecture du code, et bien je dirais tout simplement bravo, c'est nickel:cool: (j'en étais sûr, ta sollicitation, qui m'honore :p, m'étonne d'ailleurs, alors JM on doute? :D)
Pour le bug sur excel 2007, là je ne peux vraiment pas t'aider, mais tu le sais déjà ;).
Pour la question initiale, encore moins :confused:.

A bientôt.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : [XL2000][XML] Comment importer downloads.rdf dans Excel (Téléchargements Firefox

Bonsoir Skoobi, le fil, le forum

Merci d'avoir pris le temps de lire le code VBA.

Pour la question initiale:

Le fichier downloads.rdf commence ainsi:

<?xml version="1.0"?>
<RDF:RDF xmlns:NC="http://home.netscape.com/NC-rdf#"
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
Donc je me suis dis que c'était un fichier XML

Or Excel sait causer le XML

(grace notamment à MSXML2.DOMDocument
Il faut cocher la référeneadéquate dans VBE)

Donc ma question est: comment lire les infos de downloads.rdf en avec une macro utilisant cette f"onctionnalité" ?

Les autres méthodes (celles de la pièce jointe) fonctionnent mais par curiosité je voudrais arriver à importer ce fichier dans Excel.
 

MichelXld

XLDnaute Barbatruc
Re : [XL2000][XML] Comment importer downloads.rdf dans Excel (Téléchargements Firefox

bonsoir


Je n'ai pas constaté de bug sous Excel2007 (les deux méthodes).


bonne soirée
michel
Microsoft Excel MVP
 

Staple1600

XLDnaute Barbatruc
Re : [XL2000][XML] Comment importer downloads.rdf dans Excel (Téléchargements Firefox

Bonsoir MichelXLD


Merci d'avoir regardé le code VBA de ce fichier.

Justement puisque tu passes par là , tu pourrais peut-être me renseigner.

J'ai été voir sur ton site, les pages relatives à XML, mais je n'arrive pas à me dépatouiller avec ce fichier rdf.

J'arrive à utilisé tes codes avec des fichiers XML classiques

(que ce soit avec VBA, ou même VBScript)

Pourrais-tu stp éclairer ma lanterne ?
 

MichelXld

XLDnaute Barbatruc
Re : [XL2000][XML] Comment importer downloads.rdf dans Excel (Téléchargements Firefox

rebonsoir JM


je n'arrive pas à me dépatouiller avec ce fichier rdf.
je ne suis pas sur qu'un schéma rtd soit assimilable à un schéma xml, mais je ne suis pas un spécialiste dans ce domaine.


bonne soirée
michel
Microsoft Excel MVP
 

Staple1600

XLDnaute Barbatruc
Re : [XL2000][XML] Comment importer downloads.rdf dans Excel (Téléchargements Firefox

Re


Merci Michel.

(Et merci encore pour l'import de l'historique de Firefox ;) réalisé naguère )

Bon alors je lance un appel (non urgent)

Y'a-t-il un ou une XML addict sur le forum?

Si oui qu'il/elle se manifeste quand il ou elle passera dans ce fil.

Sur ce je m'en vais quérir de l'aide chez nos amis germains.

Bonne soirée à tous.
 

Haut Bas