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 :

script fonction existence caractere dans un fichier


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 63
    Par défaut script fonction existence caractere dans un fichier
    Bonjour,

    Je suis débutant en vbscript, j'ai commandé 2 livres afin d'apprendre.
    J'aimerais faire un script qui me permet de lire la valeur qu il y a dans un fichier texte et de faire un IF, je m'explique :

    $contenu = cat c:\fichier.txt #voir ce qu'il y a dans le fichier.txt
    if $contenu = 0
    then ok
    else ko
    Voyez vous ce que je veux faire ?

    J'aimerais avoir un bout de script VBS pour avoir une base, le temps de recevoir mes livres. J'ai trouvé des commandes sur internet mais qui utilise le .net et je ne peux pas dans mon cas de figure utiliser ça.

    Merci d'avance !

  2. #2
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut
    et soyez le Bienvenue dans notre Forum
    Pour Commencer je vous recommande de consulter La FAQ Vbscript et voila Comment lire le contenu d'un fichier texte ? et vous pouvez aussi consulter INTRODUCTION AU LANGAGE VBSCRIPT

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 63
    Par défaut
    Merci de ta réponse rapide, j'avais déja trouvé ce bout de code dans la FAQ, mais quand je le met dans mon script editor ( outil de supervision Service Pilot ) et que je fais "test", il me dit, error compilation : 8.

    POurrais tu m'éclairer ?

    Merci

  4. #4
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut
    Citation Envoyé par hungtuan Voir le message
    Merci de ta réponse rapide, j'avais déja trouvé ce bout de code dans la FAQ, mais quand je le met dans mon script editor ( outil de supervision Service Pilot ) et que je fais "test", il me dit, error compilation : 8.
    POurrais tu m'éclairer ?
    Merci
    Si vous avez utiliser ce script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Const ForReading = 1, ForWriting = 2 
      Dim oFso, f
      Set oFso = CreateObject("Scripting.FileSystemObject")
      Set f = oFso.OpenTextFile("c:\tmp\fichier1.txt", ForReading)
      Wscript.echo f.ReadAll
      f.Close
    et vous avez une erreur parce que le fichier1.txt n'existe pas donc il faut le créer et écrire dans ce dernier puis l'ouvrir en lecture seule et lire tout son contenu !

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 63
    Par défaut
    Dans mon outil de supervision j'ai essayé de mettre le bon fichier mais j'ai toujours l erreur compilation : 8.

    Sinon dans notepad j'ai essayé de mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim Variable 
     
    Const ForReading = 1, ForWriting = 2 
    Dim oFso, f
     
    Set oFso = CreateObject("Scripting.FileSystemObject")
    Set f = oFso.OpenTextFile("C:\Supervision SDS\Script\partage1.txt", ForReading)
    cscript.echo f.ReadAll
    f.Close
     
    If Variable = 0 Then
    Wscript.echo "ok"
    End if
    et il me retourne une erreur : Microsoft VScript runtime error : object required "cscript"

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 63
    Par défaut
    j'ai trouvé la solution j'ai remplacé cscript.echo par wscript.echo et ça fonctionne avec notepad, par contre toujours pas pour mon outil de supervision qui me dit error 8 :s

  7. #7
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut
    Citation Envoyé par hungtuan Voir le message
    Dans mon outil de supervision j'ai essayé de mettre le bon fichier mais j'ai toujours l erreur compilation : 8.

    Sinon dans notepad j'ai essayé de mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Dim Variable 
     
    Const ForReading = 1, ForWriting = 2 
    Dim oFso, f
     
    Set oFso = CreateObject("Scripting.FileSystemObject")
    Set f = oFso.OpenTextFile("C:\Supervision SDS\Script\partage1.txt", ForReading)
    cscript.echo f.ReadAll
    f.Close
     
    If Variable = 0 Then
    Wscript.echo "ok"
    End if
    et il me retourne une erreur : Microsoft VScript runtime error : object required "cscript"
    Essaye ce code ci-dessous car il faut utiliser Wscript.echo ou bien un MsgBox et non cscript.echo :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim oFso, f
     
    Set oFso = CreateObject("Scripting.FileSystemObject")
    Set f = oFso.OpenTextFile("C:\Supervision SDS\Script\partage1.txt", ForReading)
    Wscript.echo f.ReadAll
    f.Close

  8. #8
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut "existence d'un caractère dans un fichier"
    Voici un petit exemple qui illustre bien ta requête càd "existence d'un caractère dans un fichier"
    Dans cet exemple j'ai choisi la recherche du caractère "g" dans le contenu du fichier :
    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
    Const ForReading = 1, ForWriting = 2 , ForAppending = 8
      Dim oFso, EcrireFichier, LireFichier, TitreMsgBox, ChoixCarac
      ChoixCarac = "g"
      TitreMsgBox = "Existence du caractère """& ChoixCarac &""" © hungtuan"
      Set oFso = CreateObject("Scripting.FileSystemObject")
      Set EcrireFichier = oFso.OpenTextFile("c:\fichier1.txt", ForWriting,True) 'Ouvrir le fichier en écriture
      EcrireFichier.Writeline "hungtuan" 'Ecrire une chaine de caractéres dans une ligne "hungtuan"
      EcrireFichier.Writeline "Hackoo" 'Ecrire une chaine de caractéres dans une ligne "Hackoo"
      Set LireFichier = oFso.OpenTextFile("c:\fichier1.txt", ForReading)'ouvrir le fichier en Lecutre seule
      strText = LireFichier.ReadAll'Lire tout le Contenu du fichier
      MsgBox "Le contenu du fichier est : " & vbcr & strText,64,TitreMsgBox'Affichage dans un MsgBox
      LireFichier.Close'Fermeture du fichier
    If Instr(strText, ChoixCarac) > 0 Then 'Rechercher l'existence du caractère "g" dans le contenu du fichier
    MsgBox "le caractère """& ChoixCarac &""" est Bien présent dans ce fichier !",64,TitreMsgBox
    else
    MsgBox "Non, Désolé, le caractère """& ChoixCarac &""" n'est pas présent dans ce fichier !",16,TitreMsgBox
    end if

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 63
    Par défaut
    maintenant, j'aimerais déclarer en variable ce bout de script et faire un if comment faire svp ?

    par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $variable = Const ForReading = 1, ForWriting = 2
    Dim oFso, f
     
    Set oFso = CreateObject("Scripting.FileSystemObject")
    Set f = oFso.OpenTextFile("C:\Supervision SDS\Script\partage1.txt", ForReading)
    cscript.echo f.ReadAll
    f.Close
     
    if $variable = 0 then
    ....
    comment faire en VBS?
    Cdt

    edit : je n'avais pas vu vos 2 dernières réponses.
    Merci

  10. #10
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut
    Citation Envoyé par hungtuan Voir le message
    maintenant, j'aimerais déclarer en variable ce bout de script et faire un if comment faire svp ?
    par exemple
    $variable = Const ForReading = 1, ForWriting = 2
    Dim oFso, f

    Set oFso = CreateObject("Scripting.FileSystemObject")
    Set f = oFso.OpenTextFile("C:\Supervision SDS\Script\partage1.txt", ForReading)
    cscript.echo f.ReadAll
    f.Close

    if $variable = 0 then
    ....
    comment faire en VBS?
    Cdt
    j'ai pas bien saisi ta requête ?? si tu reformules mieux ta question en mettant ton code entre les balises
    est-ce-que tu as essayer le dernier script que j'ai poster "existence d'un caractère dans un fichier"

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 63
    Par défaut
    Citation Envoyé par hackoofr Voir le message
    j'ai pas bien saisi ta requête ?? si tu reformules mieux ta question en mettant ton code entre les balises
    est-ce-que tu as essayer le dernier script que j'ai poster "existence d'un caractère dans un fichier"
    Oui j'ai essayé le dernier script que tu m'as donné mais ça ne fonctionne pas.Ca fonctionne en local avec CMD mais pas dans mon outil de supervision. Je crois que ce n'est pas du VBS qu'il faut utiliser dans mon outil de supervision mais du WSH. Voici un exemple de script qui marche dans mon outil de supervision.

    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
    Function indicator(ByRef Nom As String, ByRef Object_1 As String, ByRef Object_2 As String, ByRef Object_3 As String, ByRef Object_4 As String, ByRef Object_5 As String, ByRef mSeconds As String, ByRef ObjectVar1 As String, ByRef ObjectVar2 As String, ByRef ObjectVar3 As String, ByRef ObjectVar4 As String, ByRef ObjectVar5 As String, ByRef ObjectVar6 As String, ByRef ClassVar1 As String, ByRef ClassVar2 As String, ByRef ClassVar3 As String, ByRef ClassVar4 As String, ByRef ClassVar5 As String, ByRef ClassVar6 As String, ByRef GlobalVar1 As String, ByRef GlobalVar2 As String, ByRef GlobalVar3 As String, ByRef GlobalVar4 As String, ByRef GlobalVar5 As String, ByRef GlobalVar6 As String) As String
     
    indicator = vbnullstring
     
    * indicator = "KO"
    try
    ******* If My.Computer.FileSystem.DirectoryExists(Nom) Then
    *********** Dim nbDirectories As Integer = My.Computer.FileSystem.GetDirectories(Nom).Count
    *********** Dim nbFiles As Integer = My.Computer.FileSystem.GetFiles(Nom).Count
    *********** If nbDirectories >= 0 OrElse nbFiles >= 0 Then
    *************** indicator = "OK"
    *********** End If
    ******* End If
    catch e as exception
     
    indicator = "KO"
     
    end try
     
     
    End Function
    Est-ce bien du VBS pur ? et non une dérive comme WSH ou WSF ?!


    Merci encore du temps que tu passes à me répondre.
    Cdt,

  12. #12
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut
    Citation Envoyé par hungtuan Voir le message
    Oui j'ai essayé le dernier script que tu m'as donné mais ça ne fonctionne pas.Ca fonctionne en local avec CMD mais pas dans mon outil de supervision. Je crois que ce n'est pas du VBS qu'il faut utiliser dans mon outil de supervision mais du WSH. Voici un exemple de script qui marche dans mon outil de supervision.

    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
    Function indicator(ByRef Nom As String, ByRef Object_1 As String, ByRef Object_2 As String, ByRef Object_3 As String, ByRef Object_4 As String, ByRef Object_5 As String, ByRef mSeconds As String, ByRef ObjectVar1 As String, ByRef ObjectVar2 As String, ByRef ObjectVar3 As String, ByRef ObjectVar4 As String, ByRef ObjectVar5 As String, ByRef ObjectVar6 As String, ByRef ClassVar1 As String, ByRef ClassVar2 As String, ByRef ClassVar3 As String, ByRef ClassVar4 As String, ByRef ClassVar5 As String, ByRef ClassVar6 As String, ByRef GlobalVar1 As String, ByRef GlobalVar2 As String, ByRef GlobalVar3 As String, ByRef GlobalVar4 As String, ByRef GlobalVar5 As String, ByRef GlobalVar6 As String) As String
     
    indicator = vbnullstring
     
    * indicator = "KO"
    try
    ******* If My.Computer.FileSystem.DirectoryExists(Nom) Then
    *********** Dim nbDirectories As Integer = My.Computer.FileSystem.GetDirectories(Nom).Count
    *********** Dim nbFiles As Integer = My.Computer.FileSystem.GetFiles(Nom).Count
    *********** If nbDirectories >= 0 OrElse nbFiles >= 0 Then
    *************** indicator = "OK"
    *********** End If
    ******* End If
    catch e as exception
     
    indicator = "KO"
     
    end try
     
     
    End Function
    Est-ce bien du VBS pur ? et non une dérive comme WSH ou WSF ?!


    Merci encore du temps que tu passes à me répondre.
    Cdt,
    ceci n'est pas du VBscript mais du VB.net donc tu dois choisir si tu vas continuer à apprendre le Vbscript ou bien aborder le VB.net

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 63
    Par défaut
    Voici un bout de script qui marche dans mon outil de supervision, est ce bien du VBscript et pas WSF ??


    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
    Function indicator(ByRef Nom As String, ByRef Object_1 As String, ByRef Object_2 As String, ByRef Object_3 As String, ByRef Object_4 As String, ByRef Object_5 As String, ByRef mSeconds As String, ByRef ObjectVar1 As String, ByRef ObjectVar2 As String, ByRef ObjectVar3 As String, ByRef ObjectVar4 As String, ByRef ObjectVar5 As String, ByRef ObjectVar6 As String, ByRef ClassVar1 As String, ByRef ClassVar2 As String, ByRef ClassVar3 As String, ByRef ClassVar4 As String, ByRef ClassVar5 As String, ByRef ClassVar6 As String, ByRef GlobalVar1 As String, ByRef GlobalVar2 As String, ByRef GlobalVar3 As String, ByRef GlobalVar4 As String, ByRef GlobalVar5 As String, ByRef GlobalVar6 As String) As String
     
    indicator = vbnullstring
     
    * indicator = "KO"
    try
    ******* If My.Computer.FileSystem.DirectoryExists(Nom) Then
    *********** Dim nbDirectories As Integer = My.Computer.FileSystem.GetDirectories(Nom).Count
    *********** Dim nbFiles As Integer = My.Computer.FileSystem.GetFiles(Nom).Count
    *********** If nbDirectories >= 0 OrElse nbFiles >= 0 Then
    *************** indicator = "OK"
    *********** End If
    ******* End If
    catch e as exception
     
    indicator = "KO"
     
    end try
     
     
    End Function
    Merci d'avance

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/03/2006, 17h40
  2. Ecriture par caractere dans un fichier.
    Par SaianSupa dans le forum C
    Réponses: 5
    Dernier message: 29/11/2005, 15h31
  3. [langage] recuperer 8 caracteres dans un fichier
    Par ifan dans le forum Langage
    Réponses: 12
    Dernier message: 24/05/2005, 17h01
  4. Réponses: 12
    Dernier message: 14/06/2004, 13h06
  5. remplacer un caractere dans un fichier
    Par ickis dans le forum C
    Réponses: 11
    Dernier message: 13/10/2003, 09h29

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