[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 Lien supprimé *
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
 

Pièces jointes

  • erreur.jpg
    erreur.jpg
    16.1 KB · Affichages: 232
  • erreur.jpg
    erreur.jpg
    16.1 KB · Affichages: 227
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 :
https://www.excel-downloads.com/threads/vba-types-de-variables.81052/

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 Lien supprimé 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
 

Pièces jointes

  • Staple1600.zip
    25.3 KB · Affichages: 76

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:

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:

Statistiques des forums

Discussions
311 705
Messages
2 081 724
Membres
101 804
dernier inscrit
chefTarik