OVH Cloud OVH Cloud

script getfav

10 réponses
Avatar
pa-og
bonjour,

j' ai téléchargé un script "getfav.vbs" de Jean-Claude BELLAMY
ce script est très bien
mais mon fichier résultat "listfav.txt" est limité à 70 ko
et les sous-répertoires de mes favoris listés s' arrêtent ainsi à la lettre
"i"
(j' ai au total 2320 liens)
comment faire pour tout lister ???

os = windows XP + sp2

merci pour votre aide
albert


pa-og@wanadoo.fr

10 réponses

Avatar
Jean-Claude BELLAMY
Dans le message news:eioYSP% ,
pa-og s'est ainsi exprimé:

bonjour,

j' ai téléchargé un script "getfav.vbs" de Jean-Claude BELLAMY
ce script est très bien
mais mon fichier résultat "listfav.txt" est limité à 70 ko
et les sous-répertoires de mes favoris listés s' arrêtent ainsi à la
lettre "i"
(j' ai au total 2320 liens)
comment faire pour tout lister ???


Bizarre !!!
Il n'y a aucune raison, a priori, que le fichier liste généré par le script
soit limité en taille ..

Ce fichier est créé dans le dossier qui contient le script.

Est-ce que par hasard le disque qui le contient serait plein ? (çà
m'étonnerait fort, mais on ne sait jamais!)
Est-ce que des quotas ont été définis ?

As-tu essayer d'ouvrir le fichier "listfav.txt" avec un autre éditeur de
texte ?


70 ko, je trouve cela ÉNORME pour une liste de favoris !
J'en suis déjà personnellement à 40 ko, le fichier fait 900 lignes, soit
environ 400 liens, ce que je trouve beaucoup..et à la limite inexploitable !
(trop de liens les rendent introuvables, et une arborescence trop poussée
est mal commode)




--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*

Avatar
pa-og
merci d' avoir répondu,

je n' ai pas de quotas
j' ai ouvert "listfav.txt", 70 ko avec Ultra Edit

dans "listfav.txt" j' ai jusqu' à la lettre 'i' soient 1802 lignes, 70 ko,
et 900 liens
(sur les 2320 liens au total dans le répertoire "Favoris")

info: le fichier "bookmark.htm" généré par l' export via IE6 fait 437 ko et
3411 lignes

moi, je fonctionne très bien avec mes 2320 liens dans mes favoris...
tout est bien rangé depuis des années
tout est utile, vérifié et ce n' est pas fini

albert



"pa-og" a écrit dans le message de news:
eioYSP%
bonjour,

j' ai téléchargé un script "getfav.vbs" de Jean-Claude BELLAMY
ce script est très bien
mais mon fichier résultat "listfav.txt" est limité à 70 ko
et les sous-répertoires de mes favoris listés s' arrêtent ainsi à la
lettre "i"
(j' ai au total 2320 liens)
comment faire pour tout lister ???

os = windows XP + sp2

merci pour votre aide
albert






Avatar
Jean-Claude BELLAMY
Dans le message news:uqNXDc$ ,
pa-og s'est ainsi exprimé:

merci d' avoir répondu,

je n' ai pas de quotas
j' ai ouvert "listfav.txt", 70 ko avec Ultra Edit

dans "listfav.txt" j' ai jusqu' à la lettre 'i' soient 1802 lignes,
70 ko, et 900 liens
(sur les 2320 liens au total dans le répertoire "Favoris")


Est-ce que la dernière ligne du fichier est coupée brutalement ou non ?

Y aurait-il par hasard dans le favori correspondant un caractère "exotique",
qui provoquerait une fin de fichier inattendue ?


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*

Avatar
pa-og
bingo Jean Claude,

en effet la dernière ligne du fichier de 70 ko (inachevé donc) était un lien
de LDLC.
quand j' ajoute aux favoris un lien de LDLC, il me place bien un caractère
exotique
en premier dans le nom du lien.

j' ai renommé le lien concerné et ton script fonctionne +impeccable+
tous y est en 220 ko !

-----------------------------------------------------------
exemple de lien trouvé:
"? ASUSTeK MyPal A716 (Organiseur - PDA - MyPal A7"
http://www.ldlc.fr/fiche/PB00020540.html

il y a un triangle ici devant le mot Asus mais dans les favoris on voit un
rectangle
à la place
-----------------------------------------------------------

merci Jean Claude pour ton aide précieuse ainsi que pour ta contribution
exemplaire afin d' aider les internautes dans les dédales de univers
informatique

a+
albert


Avatar
Jean-Claude BELLAMY
Dans le message news: ,
pa-og s'est ainsi exprimé:

bingo Jean Claude,

en effet la dernière ligne du fichier de 70 ko (inachevé donc) était
un lien de LDLC.
quand j' ajoute aux favoris un lien de LDLC, il me place bien un
caractère exotique
en premier dans le nom du lien.

j' ai renommé le lien concerné et ton script fonctionne +impeccable+
tous y est en 220 ko !

-----------------------------------------------------------
exemple de lien trouvé:
"? ASUSTeK MyPal A716 (Organiseur - PDA - MyPal A7"
http://www.ldlc.fr/fiche/PB00020540.html

il y a un triangle ici devant le mot Asus mais dans les favoris on
voit un rectangle à la place


Merci pour le retour !

Je ne suis évidemment pas à l'abri d'une conceté, mais dans le cas précis çà
m'étonnait quand même que le script soit buggué vu sa simplicité.
(je me contente d'énumérer les sous-dossiers et fichiers, puis lire les
fichiers xxxx.url)

Je n'avais pas prévu "l'exotisme" de certains sites !! ;-)

- Ou bien on ne prévoit pas ce genre de chose,
et on s'expose alors à ce genre de problème.
- Ou bien on essaye de prévoir toutes les concetés
des autres, et alors on génère des usines à gaz
monstrueuses ! ;-)

P.ex. il faudrait que dans mon script Getfav, après la ligne 66
"ligne=curf.readline", j'ajoute un traitement des caractères folklos
éventuels..
Et çà, franchement, je n'avais même pas pensé à le faire !


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*

Avatar
Fabien
Même problème que toi.
Je poste le code si un expert du groupe sait résoudre ça.

' --------------------------------------------------------
--
' Script d'affichage des favoris (noms et URL)
' y compris dans les sous-répertoires
'
' Jean-Claude BELLAMY - © 2002
' --------------------------------------------------------
--
ForReading=1
Const SW_HIDE=0
Const SW_SHOWNORMAL=1

Dim shell, fldrs, fso, ts
Set shell = WScript.CreateObject("WScript.Shell")
Set fso = WScript.CreateObject
("Scripting.FileSystemObject")
FileResult=GetPath() & "listfav.txt"
Set ts=fso.CreateTextFile(FileResult, true)
' Récupération du chemin du dossier "Favoris"
Set fldrs = Shell.SpecialFolders
fav=fldrs("Favorites")
ts.WriteLine "Dossier des favoris : " & fav
indfav=InstrRev(fav,"")+1
explorefolder(fav)
ts.close

prompt="La liste des favoris a été stockée dans" & VBCRLF
& _
"le fichier " & FileResult & VBCRLF & _
"Appuyer sur :" & VBCRLF & _
" OUI pour l'imprimer" & VBCRLF & _
" NON pour l'ouvrir avec le bloc-notes"
rep=MsgBox(prompt, vbYesNo + vbQuestion, "Liste des
favoris")

If rep=vbYes Then
commutateur=" /p "
show=SW_HIDE
else
commutateur=" "
show=SW_SHOWNORMAL
end if
' Impression ou affichage du fichier à l'aide du bloc-
notes
commande=shell.ExpandEnvironmentStrings("%windir%
notepad.exe" & commutateur & chr(34) & FileResult & chr
(34))
shell.Run commande, show, true
wscript.quit

'----------------------------------------------------
' Sous-programme récursif d'exploration des dossiers
sub explorefolder(namefolder)
dim f,collfolders,collfiles
Set f = fso.GetFolder(namefolder)
' Collection des fichiers et sous-dossiers du dossier
courant
Set collfolders= f.SubFolders
Set collfiles = f.Files
subname=mid(namefolder,indfav)
ts.writeline VBCRLF & subname
ts.writeline String(len(subname), "-")

' Exploration des fichiers contenus
nf=0
For each fic in collfiles
ext=LCase(right(fic.Name, 4))
' On ne retient que les fichiers *.url
If ext=".url" Then
nf=nf+1
titre=left(fic.Name,Len(fic.Name)-4)
set curf=fic.OpenAsTextStream(ForReading,
TristateUseDefault)
' On lit le fichier et recherche l'item "URL=..."
Do While (curf.AtEndOfStream <>true)
ligne=curf.readline
If lcase(left(ligne,4))="url="
Then
URL=right(ligne,len
(ligne)-4)
lenURL=len(URL)
URL2=""
i=1
lmax€
Do while i<=lenURL
If URL2<>"" Then
URL2=URL2 & VBCRLF
URL2=URL2
& " " & mid(URL,i,lmax)
i=i+lmax
Loop
exit Do
End If
Loop
curf.close
ts.writeline FormatStrR(nf,4) & " " &
titre
ts.writeline URL2
End If
Next

' Exploration récursive des sous-dossiers
For each folder in collfolders
newfolder=namefolder & "" & folder.Name
explorefolder(newfolder)
Next
end sub
'---------------------------------------------------------
-----------
' Fonction de récupération du répertoire courant
Function GetPath()
Dim path
path = WScript.ScriptFullName
GetPath = Left(path, InStrRev(path, ""))
End Function
'---------------------------------------------------------
-----------
Function FormatStrR(ch,lmax)
l=len(ch)
If l<lmax Then
For k = l+1 To lmax
ch=" " & ch
Next
End If
FormatStrR=ch
End Function
'---------------------------------------------------------
-----------



-----Original Message-----
bonjour,

j' ai téléchargé un script "getfav.vbs" de Jean-Claude
BELLAMY

ce script est très bien
mais mon fichier résultat "listfav.txt" est limité à 70
ko

et les sous-répertoires de mes favoris listés s'
arrêtent ainsi à la lettre

"i"
(j' ai au total 2320 liens)
comment faire pour tout lister ???

os = windows XP + sp2

merci pour votre aide
albert





.



Avatar
Jean-Claude BELLAMY
Dans le message news:1ea101c54493$1d61d800$ ,
Fabien s'est ainsi exprimé:

Même problème que toi.
Je poste le code si un expert du groupe sait résoudre ça.
[...]
Tu sais lire ??????? ;-)

Et tu aurais pu t'adresser directement à moi, vu que je suis le concepteur
du script !

Cf. les message postés successivement :

- par moi-même le 18/04 à 12h44,
dans lequel je subordore la présence de caractère "exotique"
provoquant une fin prématurée du script.

- par "pa-og" le 18/04 à 17h55
dans lequel il explique que mon intuition était bonne,
et que le problème était causé par un caractère non imprimable.

En l'occurence il avait un raccourci sur le document
http://www.ldlc.fr/fiche/PB00020540.html dont le titre commence par un
caractère "&#9655;"
<TITLE>&#9655; ASUSTeK MyPal A716 (Organiseur .....
qui se retrouve alors dans le nom du fichier raccourci "<9655> ASUSTeK MyPal
A716 (Organiseur ...... .URL"

Or ce signe 9655 (en décimal), conformément à la norme ISO 10646-1, fait
partie de la rangée 25 (filets, pavés et formes géométriques).
C'est le caractère UNICODE 25B7 (transcription en hexadécimal de 9655), qui
se représente par "Un triangle blanc pointant vers la droite" !
cf. :
http://alis.isoc.org/codage/iso10646/rang_25.htm

Drôlement courant et utile dans un titre de document HTML ou nom de fichier
!!!!! :-(
C'est à croire que chez LDLC ils ont cherché à faciliter le transit
intestinal des internautes en les empêchant de copier un favori sur leur
site ! ;-)
(ce qui serait complètement idiot!)


Comme ce genre de gag m'énerve passablement, j'ai cherché à le résoudre, et
j'ai trouvé la solution qui est hyper-simple !
Il suffit que le fichier texte "listfav.txt", qui va contenir la liste des
favoris, soit créé en UNICODE !

J'ai donc modifié en conséquence la ligne 15 du script :
Set ts=fso.CreateTextFile(FileResult, true)
en
Set ts=fso.CreateTextFile(FileResult, true,true)

le 3ème paramètre ("true") indiquant un fichier UNICODE.

J'ai testé, çà fonctionne au poil !


La mise à jour du script a été effectuée sur mon site :
http://www.bellamyjc.org/download/vbs/getfav.vbs

ainsi que l'autoextractible qui contient tous mes scripts :
http://www.bellamyjc.org/download/vbs/vbs.exe


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*

Avatar
Fabien
Tu sais lire ??????? ;-)
Et tu aurais pu t'adresser directement à moi, vu que je
suis le concepteur

du script !


Justement oui je sais lire ;-) (rassuré ? ;-) )
Comme j'ai lu que tu n'avais pas de solution pour ça je
demande si qq de plus expérimenté que toi n'en n'aurait
pas une ;-)

Au passage je n'ai pas compris l'intérêt de numéroter les
lignes dans la sortie de "ton" script.
Comme la sortie n'est pas triée ça n'a pas énormément
d'intérêt ;-)

Avatar
Fabien
J'ai encore trouvé des erreurs dans "ton" nouveau script.
Je te mets la version corrigée (comme tu vois : ta
connaissance s'accroit quand je partage la mienne ;-) ):

' --------------------------------------------------------
--
' Script d'affichage des favoris (noms et URL)
' y compris dans les sous-répertoires
'
' Jean-Claude BELLAMY - © 2002
' Corrections de Fabien © 2005
' --------------------------------------------------------
--
'************ForReading=1
Const ForReading=1
Const SW_HIDE=0
Const SW_SHOWNORMAL=1
'*******la constante suivante n'était pas déclarée !!!!!
Const TristateUseDefault=-2

Dim shell, fldrs, fso, ts
Set shell = WScript.CreateObject("WScript.Shell")
Set fso = WScript.CreateObject
("Scripting.FileSystemObject")
FileResult=GetPath() & "listfav.txt"
Set ts=fso.CreateTextFile(FileResult, true,true)
' Récupération du chemin du dossier "Favoris"
Set fldrs = Shell.SpecialFolders
fav=fldrs("Favorites")
ts.WriteLine "Dossier des favoris : " & fav
indfav=InstrRev(fav,"")+1
explorefolder(fav)
ts.close

prompt="La liste des favoris a été stockée dans" & VBCRLF
& _
"le fichier " & FileResult & VBCRLF & _
"Appuyer sur :" & VBCRLF & _
" OUI pour l'imprimer" & VBCRLF & _
" NON pour l'ouvrir avec le bloc-notes"
rep=MsgBox(prompt, vbYesNo + vbQuestion, "Liste des
favoris")

If rep=vbYes Then
commutateur=" /p "
show=SW_HIDE
else
commutateur=" "
show=SW_SHOWNORMAL
end if
' Impression ou affichage du fichier à l'aide du bloc-
notes
commande=shell.ExpandEnvironmentStrings("%windir%
notepad.exe" & commutateur & chr(34) & FileResult & chr
(34))
shell.Run commande, show, true
wscript.quit

'----------------------------------------------------
' Sous-programme récursif d'exploration des dossiers
sub explorefolder(namefolder)
dim f,collfolders,collfiles
Set f = fso.GetFolder(namefolder)
' Collection des fichiers et sous-dossiers du dossier
courant
Set collfolders= f.SubFolders
Set collfiles = f.Files
subname=mid(namefolder,indfav)
ts.writeline VBCRLF & subname
ts.writeline String(len(subname), "-")

' Exploration des fichiers contenus
nf=0
For each fic in collfiles
ext=LCase(right(fic.Name, 4))
' On ne retient que les fichiers *.url
If ext=".url" Then
nf=nf+1
titre=left(fic.Name,Len(fic.Name)-4)
set curf=fic.OpenAsTextStream(ForReading,
TristateUseDefault)
' On lit le fichier et recherche l'item "URL=..."
Do While (curf.AtEndOfStream <>true)
ligne=curf.readline
If lcase(left(ligne,4))="url="
Then
URL=right(ligne,len
(ligne)-4)
lenURL=len(URL)
URL2=""
i=1
lmax€
Do while i<=lenURL
If URL2<>"" Then
URL2=URL2 & VBCRLF
URL2=URL2
& " " & mid(URL,i,lmax)
i=i+lmax
Loop
exit Do
End If
Loop
curf.close
ts.writeline FormatStrR(nf,4) & " " &
titre
ts.writeline URL2
End If
Next

' Exploration récursive des sous-dossiers
For each folder in collfolders
newfolder=namefolder & "" & folder.Name
explorefolder(newfolder)
Next
end sub
'---------------------------------------------------------
-----------
' Fonction de récupération du répertoire courant
Function GetPath()
Dim path
path = WScript.ScriptFullName
GetPath = Left(path, InStrRev(path, ""))
End Function
'---------------------------------------------------------
-----------
Function FormatStrR(ch,lmax)
l=len(ch)
If l<lmax Then
For k = l+1 To lmax
ch=" " & ch
Next
End If
FormatStrR=ch
End Function
'---------------------------------------------------------
-----------


-----Original Message-----
Dans le message news:1ea101c54493$1d61d800
$ ,

Fabien s'est ainsi
exprimé:


Même problème que toi.
Je poste le code si un expert du groupe sait résoudre
ça.


[...]
Tu sais lire ??????? ;-)

Et tu aurais pu t'adresser directement à moi, vu que je
suis le concepteur

du script !

Cf. les message postés successivement :

- par moi-même le 18/04 à 12h44,
dans lequel je subordore la présence de
caractère "exotique"

provoquant une fin prématurée du script.

- par "pa-og" le 18/04 à 17h55
dans lequel il explique que mon intuition était bonne,
et que le problème était causé par un caractère non
imprimable.


En l'occurence il avait un raccourci sur le document
http://www.ldlc.fr/fiche/PB00020540.html dont le titre
commence par un

caractère "&#9655;"
<TITLE>&#9655; ASUSTeK MyPal A716 (Organiseur .....
qui se retrouve alors dans le nom du fichier
raccourci "<9655> ASUSTeK MyPal

A716 (Organiseur ...... .URL"

Or ce signe 9655 (en décimal), conformément à la norme
ISO 10646-1, fait

partie de la rangée 25 (filets, pavés et formes
géométriques).

C'est le caractère UNICODE 25B7 (transcription en
hexadécimal de 9655), qui

se représente par "Un triangle blanc pointant vers la
droite" !

cf. :
http://alis.isoc.org/codage/iso10646/rang_25.htm

Drôlement courant et utile dans un titre de document
HTML ou nom de fichier

!!!!! :-(
C'est à croire que chez LDLC ils ont cherché à faciliter
le transit

intestinal des internautes en les empêchant de copier un
favori sur leur

site ! ;-)
(ce qui serait complètement idiot!)


Comme ce genre de gag m'énerve passablement, j'ai
cherché à le résoudre, et

j'ai trouvé la solution qui est hyper-simple !
Il suffit que le fichier texte "listfav.txt", qui va
contenir la liste des

favoris, soit créé en UNICODE !

J'ai donc modifié en conséquence la ligne 15 du script :
Set ts=fso.CreateTextFile(FileResult, true)
en
Set ts=fso.CreateTextFile(FileResult, true,true)

le 3ème paramètre ("true") indiquant un fichier UNICODE.

J'ai testé, çà fonctionne au poil !


La mise à jour du script a été effectuée sur mon site :
http://www.bellamyjc.org/download/vbs/getfav.vbs

ainsi que l'autoextractible qui contient tous mes
scripts :

http://www.bellamyjc.org/download/vbs/vbs.exe


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
---------------------------------------------------------
-

Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*


.




Avatar
JF
*Bonjour* !
Merci pour cette nouvelle version qui corrige ce défaut.
Ce script prend tout son sel lorsqu'on utilise un remplaçant de Notepad qui
rend cliquable les liens internet. Pouvoir utiliser ainsi des hyperliens
dans un simple fichier texte est une option irremplaçable.
Hélas le script coupe les liens au-delà du 80ème caractère, un peu comme
sur les anciennes versions d'Outlook Express.
Heureusement la boucle qui réalise cela est facile à identifier. J'ai donc
simplement augmenté la longueur maximale d'un lien (variable lmax, avec un
L).

Les remplaçant de Notepad traitant les hyperliens sont nombreux.
Par exemple, Metapad:
http://www.gratilog.net/bureautique1.htm
--
Trouver des réponses:
1- www.d2i.ch/pn/az
2- www.d2i.ch/pn/depannage/supports.html#faq
3- Montrez vos impressions d'écrans avec http://cjoint.com
4- Outlook Express: Suivez vos fils avec [CTL+H]
- Salutations, Jean-François.