|
| Si vous êtes comme moi par Bo*** S*1442 le
[Aller à la fin] |
| Informatique | |
et que vous avez pleins de fichiers pgn dispersés aux 4 coins de votre disque dur, voici un script qui les rassemblera tous en un seul fichier automatiquement !
Copier le texte situé entre les étoiles dans un fichier texte avec l'extension ".vbs"
.Par exemple "totalpgn.vbs" et cliquer sur le ficher via l'explorateur.
***********************************
'Par Boris S
'Concatene ts les pgn à partir
'd'un répertoire ( récursivité )
Dim fso
Dim folder
Dim Depart
Set fso = CreateObject("Scripting.FileSystemObject")
Depart=inputbox ("Entrer le répertoire de départ", "Mettre un à la fin")
Set folder = fso.GetFolder(Depart)
listfolders folder
msgbox "Terminé" & chr(13) & "BASE.PGN Créé"
Public Sub listfolders(f)
Dim g
'msgbox "repertoire:" & f.Name
Dim Files
Dim File
Set Files = f.Files
If Files.Count <> 0 Then
For Each File In Files
if fso.GetExtensionName(File.name )="pgn" then Ajoute File
Next
End If
For Each g In f.SubFolders
listfolders g
Next
End Sub
Sub Ajoute(UnFicPgn)
if UnFicPgn.name = "base.pgn" then exit sub
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set f = fso.OpenTextFile(UnFicPgn.path, ForReading, True)
ContenuFic=f.ReadAll
f.Close
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("base.pgn", ForAppending , True)
f.write ContenuFic
f.Close
end sub
***********************************
Fonctionne à partir de W98
|
|
|
merci pour eux mais bon pourquoi il traine partout ?sinon cat fais du bon boulot merde c'est sous linux..
|
|
|
Amélioration du script.... J'ai modifié ton script comme suite pour qu'on puisse choisir le nom du fichier dans lequel les pgn seront concaténés :
'Par Boris S'Concatene ts les pgn à partir'd'un répertoire ( récursivité )'modifié par Pascal GDim fsoDim folderDim Depart'Rajout par PascalDim NomBaseSet fso = CreateObject("Scripting.FileSystemObject")Depart=inputbox ("Entrer le répertoire de départ", "Mettre un à la fin")Set folder = fso.GetFolder(Depart)'Rajout par PascalNomBase=inputbox ("Entrer le nom du fichier pour la base PGN qui va être créée", "Nom de votre base ?")listfolders folder'Ligne modifiée par Pascalmsgbox "Terminé" & chr(13) & NomBase +".PGN Créé"Public Sub listfolders(f)Dim g 'msgbox "repertoire:" & f.NameDim FilesDim FileSet Files = f.FilesIf Files.Count 0 ThenFor Each File In Filesif fso.GetExtensionName(File.name )="pgn" then Ajoute FileNextEnd IfFor Each g In f.SubFolderslistfolders gNext End SubSub Ajoute(UnFicPgn)'Ligne modifiée par Pascalif UnFicPgn.name = NomBase +".pgn" then exit subConst ForReading = 1, ForWriting = 2, ForAppending = 8Set f = fso.OpenTextFile(UnFicPgn.path, ForReading, True)ContenuFic=f.ReadAllf.CloseSet fso = CreateObject("Scripting.FileSystemObject")Set f = fso.OpenTextFile(NomBase +".pgn", ForAppending , True)f.write ContenuFicf.Closeend sub
|
|
|
zut ! la mise en page ne fonctionne pas la balise HTML de de texte préformaté ne fonctionne pas !
|
|
|
On recommence avec des br ... 'Par Boris S 'Concatene ts les pgn à partir 'd'un répertoire ( récursivité ) 'modifié par Pascal G
Dim fso Dim folder Dim Depart
'Rajout par Pascal Dim NomBase
Set fso = CreateObject ("Scripting.FileSystemObject")
Depart=inputbox ("Entrer le répertoire de départ", "Mettre un à la fin")Set folder = fso.GetFolder(Depart)
'Rajout par Pascal NomBase=inputbox ("Entrer le nom du fichier pour la base PGN qui va être créée", "Nom de votre base ?")
listfolders folder
'Ligne modifiée par Pascal msgbox "Terminé" & chr(13) & NomBase +".PGN Créé"
Public Sub listfolders(f) Dim g 'msgbox "repertoire:" & f.Name
Dim Files Dim File
Set Files = f.Files
If Files.Count 0 Then For Each File In Files if fso.GetExtensionName(File.name )="pgn" then Ajoute File Next End If
For Each g In f.SubFolders listfolders g Next End Sub
Sub Ajoute(UnFicPgn)
'Ligne modifiée par Pascal if UnFicPgn.name = NomBase +".pgn" then exit sub Const ForReading = 1, ForWriting = 2, ForAppending = 8 Set f = fso.OpenTextFile(UnFicPgn.path, ForReading, True) ContenuFic=f.ReadAll f.Close
Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile(NomBase +".pgn", ForAppending , True) f.write ContenuFic f.Close
end sub
|
|
|
Merci Pascal On sent le pro pour avoir pris soin d'indiquer où tu avais modifié. J'ai scanné tout mon disque ce matin, et pour générer un fichier de 7 megas ( j'en avais des fichiers éparpillés ! )ça à pris 4 secondes.
|
|
|