Soyez le premier à donner votre avis sur cette source.
Snippet vu 22 022 fois - Téléchargée 38 fois
'Copyright BenGolgoth 'Script qui permet de découper un fichier en plusieurs fichiers de x lignes. 'Utilisation : ' On passe le fichier à découper en paramètre du script (par un drag&drop) ' Le script demande alors à l'utilisateur le nombre de lignes qu'il veut par fichier et ' s'il y a des en-têtes (l'en-tête ne peut faire qu'une ligne). ' Le traitement est terminé une fois que le message de fin de traitement est apparu. ' Les fichiers créés ont le même nom que le fichier passé en paramètre sauf qu'ils ont ' un numéro juste avant l'extension. 'Constantes pour l'utilisation des fichiers Const ForReading = 1, ForWriting = 2, SFSO = "Scripting.FileSystemObject", WSS = "Wscript.Shell" 'Variables object pour les fichiers Dim oFSO, oFileIn, oFileOut 'Numéro du fichier courant, Numéro de la ligne courante, Nombre de ligne du fichier en entrée Dim iCurrentFile, iCurrentLine, iNbLine 'En-tête du fichier en entrée, Paramètres du script, Fichier en entrée passé en paramètre, Fichier en sortie Dim sHeader, sArg, sFileIn, sFileOut 'Booleen qui va me permettre de savoir si le fichier contient un en-tête ou non Dim bHeader 'Initialisation des variables Set oFSO = Wscript.CreateObject(SFSO) iCurrentFile = 0 iCurrentLine = 1 'On récupère les arguments Set sArg = WScript.Arguments 'Il n'y a qu'un argument, c'est le fichier en entrée. 'S'il y en a d'autres, on affiche un message d'erreur et on sort du script. If sArg.Count <> 1 Then MsgBox "Veuillez passer en paramètre le fichier à découper." WScript.Quit End If 'On récupère le premier (et unique) argument. sFileIn = sArg(0) 'On demande à l'utilisateur le nombre de lignes qu'il désire dans ses fichiers de sortie iNbLine = CLng(InputBox("Entrez le nombre de lignes de chaque fichier de sortie :", "CutFile", 2000)) 'On demande à l'utilisateur s'il y a un en-tête sur la première ligne du fichier en entrée à 'reproduire dans les fichiers en sortie (des titres de colonnes par exemple) bHeader = MsgBox("Le fichier passé en paramètre contient-il un en-tête à reproduire dans les fichiers de sortie ?", vbYesNo, "CutFile") 'Ouverture du fichier à découper Set oFileIn = oFSO.OpenTextFile(sFileIn, ForReading, True) 'On récupère l'en-tête du fichier s'il y a besoin If bHeader = vbYes Then sHeader = oFileIn.ReadLine 'Ouverture du premier fichier de résultat Set oFileOut = oFSO.OpenTextFile(oFSO.GetParentFolderName(sFileIn) & "\\" & oFSO.GetBaseName(sFileIn) & iCurrentFile & "." & oFSO.GetExtensionName(sFileIn), ForWriting, True) 'On affiche l'en-tête s'il y a besoin If bHeader = vbYes Then oFileOut.WriteLine sHeader 'Tant qu'on n'arrive pas à la fin du fichier en entrée Do While Not oFileIn.AtEndOfStream 'On copie la ligne en cours du fichier en entrée dans le fichier de sortie en cours oFileOut.WriteLine oFileIn.ReadLine 'Si on arrive au nombre de lignes sélectionné par l'utilisateur, on ferme le fichier 'de sortie et on ouvre le suivant If iCurrentLine = iNbLine Then iCurrentLine = 0 oFileOut.Close iCurrentFile = iCurrentFile + 1 Set oFileOut = oFSO.OpenTextFile(oFSO.GetParentFolderName(sFileIn) & "\\" & oFSO.GetBaseName(sFileIn) & iCurrentFile & "." & oFSO.GetExtensionName(sFileIn), ForWriting, True) 'On affiche l'en-tête dans le nouveau fichier de sortie s'il y besoin If bHeader = vbYes Then oFileOut.WriteLine sHeader End If 'On passe à la ligne suivante iCurrentLine = iCurrentLine + 1 Loop 'On ferme tous les fichiers oFileOut.Close oFileIn.Close 'On libère la mémoire Set oFileIn = Nothing Set oFileOut = Nothing Set oFSO = Nothing MsgBox "Traitement terminé", vbOkOnly ,"CutFile"
10 nov. 2014 à 11:09
24 janv. 2005 à 08:40
A mon avis, c'est ton antivirus qui a du s'affoler avec Scripting.FileSystemObject ou WScript.shell.
23 août 2004 à 22:15
- un virus est déjà présent sur ton PC et remplace le code de tous les fichiers .vbs de ton PC
- ton antivirus est parano et reconnait comme virus des fichiers .vbs qui contiennent certaines fonctions utilisées par des virus mais à ma connaissance, il n'y en a pas dans ce script ...
- ton antivirus est hyper parano et t'envoi balader dès qu'il trouve un vbs sur ton PC ...
Si tu doutes de ce que je te dis, décrypte le script et tu verras qu'il n'y a rien de dangereux dedans ... En plus, c'est super simple ... tout est commenté ...
23 août 2004 à 20:18
Ce script est très très très très très très très très très très dangeureux il a planté mon PC a éviter a tou pris
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.