[VBA] Challenge: création d'un dork file reader [Historique Firefox]

Staple1600

XLDnaute Barbatruc
Re : [VBA] Challenge: création d'un dork file reader [Historique Firefox]

Re


Précisions:sur différents forums consacrés à mozilla ou firefox

il est conseillé d'éviter d'avoir un history.dat de très grande taille.

Donc il est nécessaire (en tout sur mon vieux PC sous W98SE)
de régulièrement Effacer ce fichier
(Dans Firefox-> Effacer mes traces maintenant)

Mais avant je voudrais sauvegarder son contenu
et pour voir le lire (ce que je fais avec Dork.exe)

Mais je voudrais le faire avec VBA

L'interet et la difficulté (en tout cas pour moi)
est d'arriver à décoder ce format particulier de stockage de champs date
comme le font dork.exe et des scripst en perl

en VBA.
 

Spitnolan08

XLDnaute Barbatruc
Re : [VBA] Challenge: création d'un dork file reader [Historique Firefox]

Re,

Je te remercie de tes efforts pour me répéter ce que tu as déjà dit. Mais je ne suis pas encore gâteux, enfin, j'espère...

Ce que je ne comprenais pas c'était la motivation finale que tu donnes ici (Sauf si je l'ai râté dans tes précédentes explications. Auquel cas je crains que je ne devienne sénile:() :
et ceci afin de pouvoir régulièrement Effacer l'historique de Firefox
(quand ce fichier *.dat devient énorme)
Il me vient alors une autre question; histoire de causer car je ne vois toujours pas l'utilité de la chose : A quoi cela te sert il de conserver un historique sur plusieurs mois ? Et le fichier que tu veux constituer ne sera t il pas plus volumineux que le fichier dat en question ?

Comme tu le vois, je suis perplexe et même sceptique (et non septique:p) sur la finalité de ta recherche, si ce n'est la beauté du travail intellectuel.

Bien cordialement

Edit : tu viens de poster un nouveau message... d'où nouvelle question : pourquoi est il déconseillé de conserver un fichier history trop volumineux ?
 

Staple1600

XLDnaute Barbatruc
Re : [VBA] Challenge: création d'un dork file reader [Historique Firefox]

Re

Avec l'utilitaire dork.exe , je peux déjà exporter dans un fichier texte
history.dat

Le faire avec VBA, c'est juste histoire de

Depuis ce matin j'essaye de comprendre ceci

Mork Structure - MDC

This grammar does not show a constraint on id, which should be a hex value not less than 80. All ids less than 80 have reserved definitions: any single ascii byte literal with ascii value 0xNN is defined to have id NN. Mork implementations which assign ids dynamically should use ascending values from 80 (or from the greatest id already assigned).
In principle, metadict might contain cells of any type. But in Mork version 1.4, only cells equal to (atomScope=a) and (atomScope=c) have any meaning. These change the default scope for the id found in subsequent alias definitions. But instead of using (atomScope=a) in a metadict to return the default scope to a, you can simply use >< to close and reopen a new dict with fewer bytes, which also returns the default scope to a.
< <(atomScope=c)> (80=cards)(81=dn)(82=modifytimestamp)(83=cn)
(84=givenname)(85=mail)(86=xmozillausehtmlmail)(87=sn)>

<(90=cn=John Hackworth,mail=jhackworth@atlantis.com)(91=19981001014531Z)
(92=John Hackworth)(93=John)(94=jhackworth@atlantis.com)(95=FALSE)
(96=Hackworth)>
After the examples above have been parsed, the oid 85:c has value mail, and the oid 96:a has value Hackworth. Using ^ syntax to indicate an oid, these are usually written ^85 when column scope c is the default, and ^96 when atom scope a is the default.
Je pense que VBA es capable de faire tout cela

Donc la finalité est comme tu le dis purement intellectuelle.

Pour ce qui est de sauvegarder l'historique, c'est juste une attitude personnelle qui peut s'assimiler à une sorte de "journal intime"
Savoir en 2009 qu'en octobre 2007, j'ai surfé sur tel ou tel site
me rappelera de bons souvenirs.


Mais l'interet premier réside de faire en VBA ce que
C++ ou Perl peuvent faire.

Mais pour cela votre aide à tous , vbaistes chevronnés, est solliciter.

(je serai scotché si un formuliste réussisait avec uniquement des formules !!)
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : [VBA] Challenge: création d'un dork file reader [Historique Firefox]

Re

--> en réponse à l'edit de: Spitnolan08
Ce lien n'existe plus

Et comme ils disent sur le site de mon message précédent.


Parser

You're expected to write a parser by hand. The grammar is only a clue, not a spec. The hard part is not the grammar, which is is simple and unambiguous. The hard part is the meaning of the Mork markup.
Mes deux mains n'y suffiront pas ;)
 
Dernière édition:

MichelXld

XLDnaute Barbatruc
Re : [VBA] Challenge: création d'un dork file reader [Historique Firefox]

bonjour


En prenant comme hypothèse (non confirmée) qu'il s'agit d'un format TimeStamp Unix, j'ai réussi à faire ça:

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\...\Firefox\...\history.dat"
 
    Open Fichier For Input As #1
        Valeur = FileLen(Fichier)
        CibleLigne = Input(Valeur, 1)
    Close 1
 
    Debut = 1
    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 Feuil2
            Worksheets("Feuil2").Cells(i, 1) = Resultat
 
            x = InStr(Fin, CibleLigne, "=")
            y = InStr(x, CibleLigne, ")")
 
            If IsNumeric(Mid(CibleLigne, x + 1, y - x - 1)) Then _
                Worksheets("Feuil2").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
 
 
Function Timestamp_To_Date(TimeStamp As Double, Annee As Double) As Date
    Dim DebutAnnee As Date
 
    DebutAnnee = CDate("01/01/" + Cstr(Annee))
    Timestamp_to_Date = DateAdd("s", TimeStamp, DebutAnnee)
End Function




Bonne journée
MichelXld
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : [VBA] Challenge: création d'un dork file reader [Historique Firefox]

Re


--> MichelXLD: tout d'abord merci pour ton implication, ta dernière version récupère bien des dates mais pour certaines, on obtient:

http://www.excel-downloads.com/forum/83696-vba-challenge-creation-dun-dork-file-reader-historique-firefox.html#post460553|01/01/70 00:00

'ceci est la dernière ligne récupérée dans excel

https://www.excel-downloads.com/thr...un-dork-file-reader-historique-firefox.83696/
01/01/70 00:00

Cela semble finalement facile, mais comment est-ce possible?

Sur tous les sites parlant de mork file format

je lis qu'il n'est pas évident d'exporter ce fichier.dat en "plain text"

(Je n'ai trouvé que deux utilitaires (hors vba) qui s'atèlent à la tâche)

// <!-- <mdb:mork:z v="1.4"/> -->
< <(a=c)> // (f=iso-8859-1)
(8A=Typed)(8B=LastPageVisited)(8C=ByteOrder)
(80=ns:history:db:row:scope:history:all)
(81=ns:history:db:table:kind:history)(82=URL)(83=R eferrer)
(84=LastVisitDate)(85=FirstVisitDate)(86=VisitCount)(87=Name)
(88=Hostname)(89=Hidden)>

Est-il possible d'exporter selon ce format?

ID | VisitCount | FirstVisitDate | LastVisitDate | URL
1DA9:^80 | 9 | 2007-10-26 20:39:20 | 2007-10-27 11:56:31 |

(ceci est la dernière ligne résultat obtenu avec dork.exe)

En tout cas mille mercis MichelXLD pour tes codes

En attendant de vous lire, je vous souhaite à tous bon week-end.

A+

JM


PS: je poursuis ma quete vbaistique (meme si je m'evertue à réinventer la roue ;) )

(Bien que ce soit Michel qui s'y soit collé)
 
Dernière édition: