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

Python Discussion :

problème de syntaxe avecif else


Sujet :

Python

  1. #1
    Membre du Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2017
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juillet 2017
    Messages : 43
    Points : 41
    Points
    41
    Par défaut problème de syntaxe avecif else
    Je suis novice en python. Je fais ce bout de code pour calculer le nombre de registre des fonction Modbus Pour cela j'ai besoin de faire une vérification qui est la suivant:
    Si funcCode est différent de 5 et 6 faire ceci: r.append (p ['ModbusADURequest'] [1] .startAddr) sinon faire r.append (p ['ModbusADURequest'] [1]. RegisterAddr ) mais j'ai une erreur:
    File" parserz.py ", ligne 868 else: ^ SyntaxError: syntaxe invalide
    ça doit être une erreur d'indentation ou autre mais je vois pas où.

    Une idée s'il vous plait ?


    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
    34
    35
    36
    def reg_no_list(s):
    	r = []
    	for p in s:
    		if (p['ModbusADUResponse'][1].funcCode != int("0x06", 16)) and (p['ModbusADUResponse'][1].funcCode != int("0x05", 16)):
     
    			if p.haslayer('ModbusADURequest'):
    				try:
    					r.append(p['ModbusADURequest'][1].startAddr)
    				except AttributeError:
    					pass
    			return r
    		else:
    			r.append(p['ModbusADURequest'][1]. registerAddr)
    		except AttributeError:
    				pass
    	return r
     
    def reg_val_list(s):
    	v = []
    	for p in s:
    		if (p['ModbusADUResponse'][1].funcCode != int("0x06", 16)) and (p['ModbusADUResponse'][1].funcCode != int("0x05", 16)):
     
     
    		if p.haslayer('ModbusADUResponse'):
    			try:
    				v += p['ModbusADUResponse'][1].registerVal
    			except AttributeError:
    				pass
    	return v
     
    	else:
     
                    v += p['ModbusADUResponse'][1]. registerValue
                except AttributeError:
                    pass
        return v

  2. #2
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    le else à la ligne 31 est un peu étrange, non ?
    et le except ligne 34 ?
    Sinon, pas de message d'erreur ?
    Code incompréhensible pour moi sinon.
    Pas d'aide par mp.

  3. #3
    Membre du Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2017
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juillet 2017
    Messages : 43
    Points : 41
    Points
    41
    Par défaut
    En fait, Le code initial était celui là (code 1):

    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
    def reg_no_list(s):
    	r = []
    	for p in s:
    		if p.haslayer('ModbusADURequest'):
    			try:
    				r.append(p['ModbusADURequest'][1].startAddr)
    			except AttributeError:
    				pass
    	return r
     
    def reg_val_list(s):
    	v = []
    	for p in s:
    		if p.haslayer('ModbusADUResponse'):
    			try:
    				v += p['ModbusADUResponse'][1].registerVal
    			except AttributeError:
    				pass
    	return v
    Puis maintenant je chercher à ajouter la condition suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (p['ModbusADUResponse'][1].funcCode != int("0x06", 16)) and (p['ModbusADUResponse'][1].funcCode != int("0x05", 16)):
    Si la condition est satisfaite, on fait le code 1 sinon on fait le code 2 :

    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
     def reg_no_list(s):
        r = []
        for p in s:
            if p.haslayer('ModbusADURequest'):
                try:
                    r.append(p['ModbusADURequest'][1]. registerAddr)
                except AttributeError:
                    pass
        return r
     
    def reg_val_list(s):
        v = []
        for p in s:
            if p.haslayer('ModbusADUResponse'):
                try:
                    v += p['ModbusADUResponse'][1]. registerValue
                except AttributeError:
                    pass
        return v

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par salwa17 Voir le message
    En fait, Le code initial était celui là (code 1):

    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
    def reg_no_list(s):
    	r = []
    	for p in s:
    		if p.haslayer('ModbusADURequest'):
    			try:
    				r.append(p['ModbusADURequest'][1].startAddr)
    			except AttributeError:
    				pass
    	return r
     
    def reg_val_list(s):
    	v = []
    	for p in s:
    		if p.haslayer('ModbusADUResponse'):
    			try:
    				v += p['ModbusADUResponse'][1].registerVal
    			except AttributeError:
    				pass
    	return v
    Puis maintenant je chercher à ajouter la condition suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (p['ModbusADUResponse'][1].funcCode != int("0x06", 16)) and (p['ModbusADUResponse'][1].funcCode != int("0x05", 16)):
    Si la condition est satisfaite, on fait le code 1 sinon on fait le code 2
    Ce que tu appelles "code" sont en réalité des fonctions. Il faut déjà nommer les choses correctement.
    Et le souci, c'est que les fonctions sont appelées sans savoir si la condition sera/ne sera pas validée.
    Donc soit tu répètes la condition dans chacune des fonctions en l'inversant dans la seconde (et en te souvenant que quand on inverse une condition on inverse aussi ses connecteurs "and"/"or")
    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
    def reg_no_list(s):
    	r = []
    	for p in s:
    		if p.haslayer('ModbusADURequest') and p['ModbusADUResponse'][1].funcCode != int("0x06", 16) and p['ModbusADUResponse'][1].funcCode != int("0x05", 16):
    			try:
    				r.append(p['ModbusADURequest'][1].startAddr)
    			except AttributeError:
    				pass
    	return r
     
    def reg_val_list(s):
    	v = []
    	for p in s:
    		if p.haslayer('ModbusADUResponse') and (p['ModbusADUResponse'][1].funcCode == int("0x06", 16) or p['ModbusADUResponse'][1].funcCode == int("0x05", 16):
    			try:
    				v += p['ModbusADUResponse'][1].registerVal
    			except AttributeError:
    				pass
    	return v
    soit tu réorganise tes deux fonctions (qui en plus sont quand-même très ressemblantes) en une seule qui pourra alors faire toutes les actions selon les conditions

    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
    def reg_list(s):
    	r = []
    	for p in s:
    		if p['ModbusADUResponse'][1].funcCode != int("0x06", 16) and p['ModbusADUResponse'][1].funcCode != int("0x05", 16):
    			if p.haslayer('ModbusADURequest'):
    				try:
    					r.append(p['ModbusADURequest'][1].startAddr)
    				except AttributeError:
    					pass
    				# try
    			# if
    		else:
    			if p.haslayer('ModbusADUResponse'):
    				try:
    					r += p['ModbusADUResponse'][1].registerVal
    				except AttributeError:
    					pass
    				# try
    			# if
    		# if
    	# for
    	return r
    # reg_list()
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Membre du Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2017
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juillet 2017
    Messages : 43
    Points : 41
    Points
    41
    Par défaut
    Merci de votre aide précieuse.

    J'ai adapté les solutions que vous avez postées en fonction de mon besoin et voici le code :

    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
    34
    35
    36
    37
    38
    39
    def reg_no_list(s):
    	r = []
    	for p in s:
    		if p['ModbusADURequest'][1].funcCode != int("0x06", 16) and p['ModbusADURequest'][1].funcCode != int("0x05", 16):
    			if p.haslayer('ModbusADURequest'):
    				try:
    					r.append(p['ModbusADURequest'][1].startAddr)
    				except AttributeError:
    					pass
    				# try
    			# if
    		else:
    			if p.haslayer('ModbusADURequest'):
    				try:
    					r.append(p['ModbusADURequest'][1].registerAddr)
    				except AttributeError:
    					pass
    				# try
    			# if
    		# if
    	# for
    	return r
    def reg_val_list(s):
    	v = []
    	for p in s:
    		if p['ModbusADURequest'][1].funcCode != int("0x06", 16) and p['ModbusADURequest'][1].funcCode != int("0x05", 16):
    			if p.haslayer('ModbusADUResponse'):
    				try:
    					r.append(p['ModbusADUResponse'][1].registerVal)
    				except AttributeError:
    					pass
    				# try
    			# if
    		else:
    			if p.haslayer('ModbusADUResponse'):
    				try:
    					r.append(p['ModbusADUResponse'][1].registerValue)
    				except AttributeError:
    					pass
    ça compile bien mais quand je compile le main, j'ai ce message:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Traceback (most recent call last):
      File "main.py", line 334, in <module>
        main()
      File "main.py", line 323, in main
        data = retrieve(parameters, sbs)
      File "main.py", line 78, in retrieve
        p["Register_number"] = parser.reg_no_list(s)
      File "C:\Users\ensibs\Documents\V14-copie\Final\parserz.py", line 860, in reg_no_list
        if p['ModbusADURequest'][1].funcCode != int("0x06", 16) and p['ModbusADURequest'][1].funcCode != int("0x05", 16):
      File "C:\Users\ensibs\AppData\Local\Programs\Python\Python37\lib\site-packages\scapy\packet.py", line 1171, in __getitem__
        raise IndexError("Layer [%s] not found" % lname)
    IndexError: Layer ['ModbusADURequest'] not found
    Avez-vous une idée ?

  6. #6
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par salwa17 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Traceback (most recent call last):
      File "main.py", line 334, in <module>
        main()
      File "main.py", line 323, in main
        data = retrieve(parameters, sbs)
      File "main.py", line 78, in retrieve
        p["Register_number"] = parser.reg_no_list(s)
      File "C:\Users\ensibs\Documents\V14-copie\Final\parserz.py", line 860, in reg_no_list
        if p['ModbusADURequest'][1].funcCode != int("0x06", 16) and p['ModbusADURequest'][1].funcCode != int("0x05", 16):
      File "C:\Users\ensibs\AppData\Local\Programs\Python\Python37\lib\site-packages\scapy\packet.py", line 1171, in __getitem__
        raise IndexError("Layer [%s] not found" % lname)
    IndexError: Layer ['ModbusADURequest'] not found
    Avez-vous une idée ?
    Oui, on a tous une idée et tous probablement la même: la clef "ModbusADURequest" n'existe pas dans ton dico. Proablement parce que dans la fonction "reg_val_list(s)" tu lui passes pas le même "s" que dans la fonction "reg_no_list(s)"
    Et faudrait un peu te sortir les doigts quoi. Parce que si tu dois venir sur le forum demander de t'expliquer les messages Python élémentaires que tu auras durant ta phase de dev tu n'iras pas bien loin !!!

    Citation Envoyé par salwa17 Voir le message
    J'ai adapté les solutions que vous avez postées en fonction de mon besoin
    Visiblement ton adaptation a foiré !!!
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Oui, on a tous une idée et tous probablement la même: la clef "ModbusADURequest" n'existe pas dans ton dico. Proablement parce que dans la fonction "reg_val_list(s)" tu lui passes pas le même "s" que dans la fonction "reg_no_list(s)"
    Et faudrait un peu te sortir les doigts quoi. Parce que si tu dois venir sur le forum demander de t'expliquer les messages Python élémentaires que tu auras durant ta phase de dev tu n'iras pas bien loin !!!


    Visiblement ton adaptation a foiré !!!
    Moi, non, je ne comprends même pas p['string']
    Pas d'aide par mp.

  8. #8
    Membre éclairé
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 513
    Points : 700
    Points
    700
    Par défaut
    bonjour,

    à défaut d'avoir le temps de comprendre le problème j'ai vu int("0x06", 16) dans le code, ce n'es pas quelque chose de mal en soit mais il y à mieux: 0x06, l'utilisation de int(x, 16) est bien pour convertir une chaîne de caractères qu'on récupère mais dans le cas de constante autant utiliser la notation qui va bien

    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
    >>> int("0x06", 16)
    6
    >>> int("0xA6", 16)
    166
    >>> 0xA6
    166
    >>> 0xa6 # n'est pas sensible à la case
    166
    >>> 1e5 # une notation scientifique, par contre ça retourne un float
    100000.0
    >>> 1E5 # idem, pas sensible à la case
    100000.0
    >>> hex(int(1E3))
    '0x3e8'
    >>> int(1E3) == int("0X3E8", 16) == 0x3E8 == 1000
    True
    comme vous le voyez c'est 4 façons différentes d'écrire la même chose

  9. #9
    Membre du Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2017
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juillet 2017
    Messages : 43
    Points : 41
    Points
    41
    Par défaut
    Vous proposez alors quelque chose de ce genre ?

    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
    34
    35
    36
    37
    38
    39
    def reg_no_list(s):
    	r = []
    	for p in s:
    		if p['ModbusADURequest'][1].funcCode != 0x06 and p['ModbusADURequest'][1].funcCode != 0x05
    			if p.haslayer('ModbusADURequest'):
    				try:
    					r.append(p['ModbusADURequest'][1].startAddr)
    				except AttributeError:
    					pass
    				# try
    			# if
    		else:
    			if p.haslayer('ModbusADURequest'):
    				try:
    					r.append(p['ModbusADURequest'][1].registerAddr)
    				except AttributeError:
    					pass
    				# try
    			# if
    		# if
    	# for
    	return r
    def reg_val_list(s):
    	v = []
    	for p in s:
    		if p['ModbusADUResponse'][1].funcCode != 0x06 and p['ModbusADUResponse'][1].funcCode != 0x05:
    			if p.haslayer('ModbusADUResponse'):
    				try:
    					r.append(p['ModbusADUResponse'][1].registerVal)
    				except AttributeError:
    					pass
    				# try
    			# if
    		else:
    			if p.haslayer('ModbusADUResponse'):
    				try:
    					r.append(p['ModbusADUResponse'][1].registerValue)
    				except AttributeError:
    					pass

  10. #10
    Membre éclairé
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 513
    Points : 700
    Points
    700
    Par défaut
    Déjà il y a un oublier de : pour le if ... je ne suis pas votre interpréteur ... si vous aviez lancé le code vous auriez vu (ou alors c'est que vous avez vous une erreur en rouge sans même la lire)


    pour le reste je n'ai aucune idée du contexte, mais vous avez aussi le droit de faire des variables intermédiaires, en plus comme ça vous pourrez utiliser des noms plus explicites pour p et s puisque vous n'allez pas les répéter 30 fois:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    func_code = p['ModbusADURequest'][1].funcCode # faut il encore savoir ce qu'est funCode ? function_code ? je met func_code comme je sais pas
     
    if func_code != 0x05 and func_code !=0x06:
        foo()
    else:
        bar()
    oh tiens, je vois que je peux améliorer ma condition, même mieux prendre la logique dans l'autre sens (bar et foo échangent de place)

    dire si x n'est pas égal à 1 ni égal à 2 je fait foo sinon bar reviens au même que si x égal 1 ou si x = 2 je fais bar, sinon foo


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if func_code == 0x05 or func_code == 0x06:
        bar()
     
    else:
        foo()
    après on peux condenser, x égal a ou x égal b -> x dans [a, b] if func_code == 0x05 or func_code == 0x06: -> if func_code in (0x05, 0x06):donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if if func_code in (0x05, 0x06):
        bar()
     
    else:
        foo()
    là c'est déjà beaucoup plus clair !
    à voir si un travail similaire peut être appliqué ou non

    ps: tous les # if / # try n'ont rien à faire dans le code, ça devrait sauter au yeux avec l'indentation et les saut de ligne, par contre commenter les cas avec les if pourquoi pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    if retour == 1: # donc mon capteur me retourne 1, ça veux dire qu'il a capté une barbe à papa
        foo()
     
    elif retour ==2: # ce code de retour là signifie qu'il détecte de la neige au mois de juin
    bon c'est la fin de semaine j'ai été folklorique dans mon dernier bout

    ps2: après pour ce qui est de la notation hexadécimale il faut l'utiliser s'il y en a besoin, et là ça dépend de ce qu'est funcCode, de comment il est documenté, d'où il provient, ect
    si funcCode ne peux prendre que 8 valeurs et qu'elles sont documentées dans un tableau avec pour chaque ligne 0x00 -> code d'erreur; 0x01 -> inactif .... 0x07 -> est en train de faire quelque chose alors autant utilisé 0, 1 ..., 7 si par contre il y a 230 codes documentés en hexadécimal dans un tableau alors là autant utiliser les notations décimales.

  11. #11
    Membre du Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2017
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juillet 2017
    Messages : 43
    Points : 41
    Points
    41
    Par défaut
    @flapili: woow ça se voit que tu es passionné par Python. Tu as une méthode facile pour expliquer les choses.
    Merci pour ton aide. ça marche.

    PS: j'ai bien aimé ton coup folklorique vers la fin

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

Discussions similaires

  1. Problème syntaxe If .. Else
    Par NeverKevin dans le forum Excel
    Réponses: 2
    Dernier message: 02/02/2014, 17h59
  2. [CR XI] Problème de syntaxe IF-ELSE || IF-ELSEIF-ELSE
    Par ygyongy dans le forum Formules
    Réponses: 3
    Dernier message: 23/07/2013, 17h30
  3. [Mail] Problème de syntaxe else if
    Par texas dans le forum Langage
    Réponses: 18
    Dernier message: 07/10/2006, 14h47
  4. Problème de syntaxe ADO ...
    Par bendev dans le forum ASP
    Réponses: 2
    Dernier message: 15/04/2004, 14h38
  5. Réponses: 2
    Dernier message: 08/03/2004, 15h10

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