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 :

Comparaison de deux paramètres définis


Sujet :

VBScript

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2012
    Messages : 16
    Par défaut Comparaison de deux paramètres définis
    Bonjour,

    J'aimerai réalisé la boucle If ci dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ask1 = inputBox("Which line do you want to modify?", Titre)
    If ask1>b Then
    Answer = Msgbox("Enter a value between 0 and " & b, VbInformation, Titre)
    test = 1
    End If
    Quelque soit la valeur mise dans l'InputBox (et après vérification le paramètre b est correctement défini), le programme rentre dans la boucle If.
    Ca me laisse penser que la comparaison entre deux paramètres n'est pas possible et qu'il faut préciser un chiffre plutot que b.
    Mais comment faire?
    j'ai bien tenté de mettre val(b) en condition mais j'ai un message d'erreur comme quoi 'val' est un "type incompatible".

    Merci pour votre aide

  2. #2
    Membre émérite Avatar de cubitus91
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2004
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 726
    Par défaut
    hello,
    si je comprend bien b est un integer ?

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2012
    Messages : 16
    Par défaut
    Oui, b est un entier.
    Il correspond au nombre de ligne contenu dans un fichier défini comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    b = 0
    Set filesys = CreateObject("Scripting.FileSystemObject")
    Set readfile = filesys.OpenTextFile(File, ForReading, false)
    Do While readfile.AtEndOfStream=false
         readfile.ReadLine	
         b = b + 1
    Loop
    readfile.close

  4. #4
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 127
    Par défaut
    Salut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    B = 10
    ask1 = InputBox("Which line do you want to modify?", Titre)
    If IsNumeric(ask1) Then
            If CInt(ask1) > B Then
                    Answer = MsgBox("Enter a value between 0 and " & B, vbInformation, Titre)
                    test = 1
            End If
            Else
            MsgBox "Votre entrée n'est pas un numerique" & vbNewLine & "Enter a value between 0 and " & B, vbInformation, Titre
    End If
    Apparemment, pour la comparaison, il faut forcer le type (ask1)
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Membre émérite Avatar de cubitus91
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2004
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 726
    Par défaut
    hello,
    Alors je me suis permi de refaire un peu ton code. Il y a une function qui retourne le nombre de ligne.
    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
     
    Private Function FileLineCount(strFilename)
    'Constantes
    Const ForReading = 1
    'local var
    Dim ObjFileSystemObject,FileContents,lngLineCount
    Set ObjFileSystemObject = CreateObject("Scripting.FileSystemObject")
    lngLineCount=0
    If ObjFileSystemObject.FileExists(strFilename) Then 
     Set FileContents = ObjFileSystemObject.OpenTextFile(strFilename, ForReading, False)
     Do While Not FileContents.AtEndOfStream
              lngLineCount = lngLineCount + 1
              FileContents.ReadLine
     Loop
    FileContents.Close
    Set FileContents = Nothing
    End If 
    Set ObjFileSystemObject = Nothing
    FileLineCount = lngLineCount
    End Function
    Et le program principal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Option Explicit
    Dim LineNeedModify, test, Answer,NumberOfLine,Titre
    NumberOfLine = 0
     
    NumberOfLine = FileLineCount(<File name>) 
    WScript.Echo "Number of line is: " & NumberOfLine
     
    LineNeedModify = inputBox("Which line do you want to modify?", Titre)
    If LineNeedModify> NumberOfLine Then
    Answer = Msgbox("Enter a value between 0 and " & NumberOfLine, VbInformation, Titre)
    test = 1
    End If

    Cordialement

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2012
    Messages : 16
    Par défaut
    Très bien, merci pour cette aide.
    N'étant pas un puriste de la programmation, je préfère rester sur les quelques commandes que j'ai entré.
    Forcer le paramètre (ask1) a résolu mon problème. Merci

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

Discussions similaires

  1. PL/SQL COMPARAISON DE DEUX TABLEAUX APRES BULK
    Par mimi_été dans le forum PL/SQL
    Réponses: 5
    Dernier message: 30/06/2009, 12h14
  2. [langage] Comparaison de deux fichiers
    Par perlgirl dans le forum Langage
    Réponses: 4
    Dernier message: 04/05/2005, 16h05
  3. [SYBASE] Comparaison de deux datetime
    Par paf15 dans le forum Sybase
    Réponses: 1
    Dernier message: 17/04/2005, 16h51
  4. Réponses: 6
    Dernier message: 24/02/2005, 09h44
  5. Réponses: 5
    Dernier message: 06/10/2003, 17h49

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