Modification [Résolu] - VB / VBA

A voir également:ModificationModificateur de voix - Conseils pratiques - Logiciels audio Logiciel modification pdf - Conseils pratiques - PDF Votre pin n'est plus disponible en raison d'une modification ✓ - Forum - Windows 10 Impossible de terminer les mises à jour annulation des modifications ✓ - Forum - Windows 8 / 8.1 Modificateur de voix en direct - Forum - Gestion du temps

Bonsoir a tous
J'aurais besoin d'aide s'il vous plaît donc j'explique mon problème.
J'ai un fichier *.reg il faut que je modifie N fois la valeur contenu dans le fichier car il dupliquer à chaque fois ( On connaît le numéro de la ligne)

Contenu du fichier:
"; The RegSave Utility created this file
; This utility was written by Paul Hurford, Symbol EMEA TS
; You use the utility at your own risk
;
; Template File : \Application\RegSave.Reg
; Program Version : 2.20.01 May xx xxx
; File created 1/11/2003 00:27:58
;

[HKEY_LOCAL_MACHINE\Ident]
"Name"="BAM201"

Il faut que je modifie le "BAM201" suivant une suite logique de la duplication d'un fichier
Ex si mon fichier Ce nomme V206
La ligne "Name"="BAM206" ainsi de suite

Forum

A voir également:ModificationModificateur de voix - Conseils pratiques - Logiciels audio Logiciel modification pdf - Conseils pratiques - PDF Votre pin n'est plus disponible en raison d'une modification ✓ - Forum - Windows 10 Impossible de terminer les mises à jour annulation des modifications ✓ - Forum - Windows 8 / 8.1 Modificateur de voix en direct - Forum - Gestion du temps

Web: www.shapebootstrap.net

2 réponses

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Re bonjour,


J'ai un fichier *.reg il faut que je modifie N fois la valeur contenu dans le fichier car il dupliquer à chaque fois ( On connaît le numéro de la ligne)

J'ai un doute sur ta question....

Tu dis avoir 1 Fichier
Et que la ligne à modifier (dont tu connais le numéro) est dupliquée ....
Seulement, dans l'exemple que tu donnes de ton fichier.. il n'y a qu'une seule ligne...

Donc.. soit tu as plusieurs fichiers
Soit l'exemple que tu donnes est incomplet...


Rappelles toi ce que je t'ai dit dans ta précédente discussion au sujet de la clarté de tes explications....
Merci donc de préciser exactement ce qu'il en est et de donner un exemple "complet"

Reply
réponses:
  • auteur

  • auteur

    EDIT : en relisant ta question.. tu parles du fichier qui est dupliqué.
    Donc tu as plusieurs fichiers..

    Ok.. par contre ils se trouvent tous dans le même dossier ?
    Les fichiers ont tous des noms de la même forme ? Juste le chiffre qui change à la fin ?

  • auteur

    Re bonjour
    En effet c'est un dossier qui est dupliquer a chaque fois qui contient le fichier *.reg
    Par exemple
    -TestN15
    -TestN16 etc
    le fichier *.reg est contenue dans chaque dossier et il doit " corresponde on numéro du dossier" donc ici
    Name =bam15 et 16

  • auteur

    Donc ce n'est pas plusieurs lignes dans un fichier
    Ce n'est pas non plus plusieurs fichiers dans un dossier
    Maintenant c'est plusieurs dossiers qui contiennent chacun un fichier ?
    C'est bien ça ?

    Et tous les dossiers se nomment de la même manière hormis le chiffre à la fin ?
    Le fichier reg à l'intérieur de ce dossier a comme nom *.reg ?? bizarre que l'étoile soit autorisée dans le nom du fichier...

    Donc :
    Tu peux faire un script qui récupère la liste des dossiers
    Puis faire une boucle sur cette liste
    dans la boucle :
    récupérer le nom du dossier
    extraire, à l'aide d'une regex, le numéro qui se trouve dans le nom
    en t'inspirant du script que je t'ai donné pour la modification de ligne dans ta précédente question, procéder au renommage (il faut un peut le modifier pour retirer les msgbox par exemple ) de la variable dans le fichier .reg
    puis on passe au dossier suivant...



    En complément :

    Exemple de regex :

     str = "TestN15" Set RegEx = CreateObject("vbscript.regexp")  RegEx.Pattern = "[^\d]" RegEx.IgnoreCase = True  RegEx.Global = True  numStr=RegEx.Replace(str, "")  msgbox numStr 

    incrémenter une variable

  • auteur

    Pour récupérer la liste des dossiers :

       folders = getFolders("c:\")   for each dossier in folders     'ici tu code le traitement .. 	'... 	' par exemple .. la récupération du numéro du dossier :               Set RegEx = CreateObject("vbscript.regexp")                 RegEx.Pattern = "[^\d]"               RegEx.IgnoreCase = True                RegEx.Global = True                numStr=RegEx.Replace(dossier, "")                msgbox numStr 	 	 	 	' fin de la boucle sur les dossiers   next    function getFolders(directory) 	Dim arr1() 	Dim folder 	Dim fsoFolder 	Dim subfolders 	Dim i 	 	Set fsoFolder = CreateObject("Scripting.FileSystemObject")     Set folder = fsoFolder.GetFolder(directory)     Set subfolders = folder.SubFolders 	 	i = 0 	for each objFolder in subfolders       REDIM PRESERVE arr1(i+1)		       arr1(i) = objFolder.Name       i = i+ 1            next 	getFolders = arr1 End Function  


    Je te laisse coder le reste

  • auteur

    Salut
    Donc si je comprends bien y'a un Script pour récupéra la valeur de tous les dossier et l'autre pour pouvoir changer le contenue du fichier c'est sa ?

  • auteur

    Non.
    Il faut que tu te serves du code que je t'ai donné dans ta précédente discussion et le mettre dans celui que je viens de te donner...

  • auteur

    Je l'ai fais mais je pense toujours avoir un problème au faite il modifie la valeur dans tous les dossiers pourrais tu me montre le code stp

  • auteur

    C'est à toi de nous montrer ce que tu as fait afin qu'on essaye de te le corriger...


    au faite il modifie la valeur dans tous les dossiers pourrais tu me montre le code stp

    Ben.. heu.. oui.. c'etait ce que qui était demandé.....

  • auteur

    Ce qui était demander c'est changer selon une suite logique hors la il met la même valeur dans tous

  • auteur

    Ben par ce que faut adapter le code...
    Donc montre nous ton code

  • auteur

     folders = getFolders("R:\Dossier test\Copier")   for each dossier in folders     'ici tu code le traitement ..  '...  ' par exemple .. la récupération du numéro du dossier :                          Str = "Bam202"        Set RegEx = CreateObject("vbscript.regexp")                RegEx.Pattern = "[^\d]"               RegEx.IgnoreCase = True                RegEx.Global = True                numStr=RegEx.Replace(dossier, "")                msgbox numStr        ' fin de la boucle sur les dossiers   next    function getFolders(directory)  Dim arr1()  Dim folder  Dim fsoFolder  Dim subfolders  Dim i    Set fsoFolder = CreateObject("Scripting.FileSystemObject")     Set folder = fsoFolder.GetFolder(directory)     Set subfolders = folder.SubFolders    i = 0  for each objFolder in subfolders       REDIM PRESERVE arr1(i+1)         arr1(i) = objFolder.Name       i = i+ 1            next  getFolders = arr1 End Function FileName = "Idxx.reg"    FindStr= numStr  ReplaceWith = arr1 'Read source text file FileContents = GetFile(FileName)  'replace all string In the source file dFileContents = replace(FileContents, FindStr, ReplaceWith, 1, -1, 1)  


    EDIT : Ajout des balises de code !!!

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Donne lui Le code qu'il arrête de saoul

Reply
réponses:
  • auteur

    Désole je suis novice aussi en vbs donc je ne comprends pas vraiment :/

  • auteur

    Ohhh... Deux comptes du même utilisateur...
    C'est bien...
    Ben vu que je "vous" saoul.. d#*&erde toi...

  • auteur

    Lol vous êtes naïve deux compte certe mais pas du même utilisateur..il s'agissait de mon frère .
    Mais merci quand même jai reussi à trouvé le problème bonne soirée

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed