IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

recherche de chaine


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 26
    Par défaut recherche de chaine
    Bonjour les forumeurs

    Je vais essayer d'expliquer mon probleme de maniere le plus claire possible :

    le contexte :

    Realiser un script (vbs) pour modifier des netlogons relatifs au mappage d'imprimante réseau,sachant qu'une migration au niveau du serveur d'impression est en cours,mon but consiste a pouvoir via le script modifier les netlogons (9000 fichiers et des brouettes )

    Le principe repose donc sur:

    La copie de chaque fichier ligne par ligne vers un nouveau repertoire avec en plus un teste relatif au chaine de caractere que contient la ligne.
    Je developpe ceci sur une station windows xp pro

    Pour rendre plus concret la chose:

    copie des fichiers texte ligne par ligne du dossier A vers le dossier B
    Et si la ligne contient la chaine de caractere(saisie precedement via inputbox) recherché alors ajouter apres cette ligne:
    une nouvelle ligne du genre "netprinter|\\nomserveur\nomimprimante"

    Mon stade actuelle:

    J'arrive a parcourir le repertoire puis tout les fichier texte du repertoire et ce ligne par ligne cepedant mon probleme reside dans un premier temps dans la recherche de la chaine de caractere précise.

    j'ai essayer de me basé sur un code trouvé sur un autre site.

    Et dans un second temps j'arrive a copier un fichier complet mais pas juste une ligne par ligne

    Voila je pense que tout ne doit pas être trés claire alors je suis dispo pour toute informations supplémentaires

    Merci d'avance à ceux qui essayerons de m 'aider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Option Explicit 
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Dim objFso, objFile,objFolder, strPath, strExt
    Dim File, Result,ligne,Texte,sChaine
    'Répertoire à parcourir
    strPath = "cheminrepertoire"
    'Extension à rechercher
    strExt = "txt"
    'Création du dossier pour la copie
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFSO.CreateFolder("chemindudossierdecopie")
    Set objFso = CreateObject("Scripting.FileSystemObject")
    '----------
    'Parcour du répertoire ligne par ligne + affichage 
    '----------
    Call ShowFileTxtFolder(strExt)
     
    Set objFso = Nothing
     
    Function ShowFileTxtFolder (strExt)
    For Each objFile In objFso.GetFolder(strPath).Files
        If UCase(objFso.GetExtensionName(objFile.Path)) = UCase(strExt) Then
           Set File = objFso.OpenTextFile(objfile.Path, ForReading)          
    	while Not File.AtEndOfStream 
    	ligne = File.Readline
    'C'est ici qu'il faut que je rajoute les conditions de test au niveau des caracteres
                 msgbox ligne,,objfile.Path
    wend
    File.Close
    Set File = nothing
    End if   
    Next
    End Function

  2. #2
    Membre Expert
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Par défaut
    Bonjour,

    La fonction InStr() ne te convient pas ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 26
    Par défaut
    Salut pc79

    Le probleme c 'est quil faut que je puisse recuperer la chaine rechercher a partir d'une variable(contenant le nom de l'imprimante [saisie a la main dans un inputbox]) et non d'une chaine saisie litteralement dans le code

    a moins qu'une astuce existe ?

    Faut dire que je suis pas un grand expert du vbs

    merci

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    un inputbox te permet de saisir un texte dans une fenêtre prévu pour.
    La méthode te renvois la chaine saisie.

    Ensuite pour les tests, en fonction de ce que tu saisies et de ta ligne, il faudra travailler sur le chaine de caractères à l'aide de fonction comme :
    strcmp, split, instr, left, right, ...

    Tu as des exemples dans la faq vbs, et si tu as besoin de plus, il est facile d'en trouver plus avec google.

    Et si tu merdouilles avec une fonction, postes le code concerné on t'aidera.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 26
    Par défaut
    ok merci

    j'ai peut être un début de solution je vais continuer je chercher si je bloque je repasse par ici

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 26
    Par défaut
    Bonjour,

    Merci la fonction instr ma en effet permis de trouver la chaine que je cherche

    bonne journéé

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [vbexcel]Rechercher une chaine dans une autre chaine...
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/12/2005, 13h49
  2. Réponses: 2
    Dernier message: 09/12/2005, 12h23
  3. Comment rechercher une chaine dans plusieurs tables ?
    Par tsing dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/11/2005, 18h04
  4. Recherche de chaine (TFindDialog)
    Par PoOky dans le forum Composants VCL
    Réponses: 10
    Dernier message: 30/08/2005, 07h59
  5. Recherche de chaine ...
    Par Metal3d dans le forum C
    Réponses: 8
    Dernier message: 27/07/2002, 01h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo