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 :

utiliser l' élement de la fonction1 dans la fonction 2 sans variable globale! [Python 2.X]


Sujet :

Python

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 14
    Points : 7
    Points
    7
    Par défaut utiliser l' élement de la fonction1 dans la fonction 2 sans variable globale!
    Voici mon code. je suis nouvelle sur ce Forum. j aimerai utiliser le lien fourni dans la première fonction dans la deuxieme je ne sais pas trop comment. J ai utilisé une variable globale mais Problème non résolu.

    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
    import   string, sys,os,win32ui,win32con
    def On_Application_LayoutManagement_Schnittstellen0020FPGA2_Push0020Button_1960_ButtonClicked(sender, button):
        """Parameters: sender, button
        """
        print 'select file!'
        global doc
        dialog = win32ui.CreateFileDialog(1,'','', 0,'Csv |*.csv')
        dialog.SetOFNTitle('Select CSV File')
        if dialog.DoModal() == win32con.IDOK:
            print dialog.GetPathName().replace('\\','/')
            doc=dialog.GetPathName().replace('\\','/')
     
            msge= Application.LayoutManagement.ActiveLayout.GetInstrument ('MsgBox')
            msge.Value= dialog.GetPathName().replace('\\','/')
     
    def On_Application_LayoutManagement_Schnittstellen0020FPGA2_Push0020Button_1961_ButtonClicked(sender, button):
        """
     Parameters: sender, button
        """
     
        datei=doc
        name = []
        value = []
        #liste = []
        liste=['AO_1','AO_2','AO_3','AO_4','AO_5','AO_6','Interupt_Faktor_10ns']
        index1 = liste.index('AO_1')  
        index2 = liste.index('AO_2')
        obj = open(datei,'r')
        for zeile in obj:
            zeile = zeile.rstrip("\n")
            i = 0
            while i < len(liste):
                if liste[i] in zeile:   
                    teile = zeile.split(';') 
                    name.append(str(teile[0])) 
                    value.append(float(teile[1])) 
                i = i+1
        obj.close()
    je ne comprend pas cette erreur.
    obj = open(datei,'r') -->>>>TypeError: coercing to Unicode: need string or buffer, type found

    Merci pour toute Aide et tout Conseil.
    Davidmir

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Ben bienvenue dans le forum.

    Pour savoir ce que contient "doc" i.e. "datei", il suffirait de faire un print "avant" ou de lancer le debugger et placer un breakpoint.
    note: comme vous ne postez pas un code complet, pas facile de vous en dire plus.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Je n'ai pas épluché ton code, mais il y a une façon pratique de permettre le partage de données entre plusieurs fonctions: placer ces fonctions en tant que méthodes dans une même classe. Dans cette classe, tout ce qui sera créé avec le préfixe "self" sera commun à chaque instance de cette classe. On peut aussi avoir des données communes à la classe elle-même, et donc communes à toutes les instances de classe.

    Voilà un petit exemple à exécuter pour voir comment ça marche:

    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
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    from __future__ import division, print_function
    # Python 2.7 ou 3
     
    class Toto(object):
     
        x = 0  # x est une variable commune à la classe
     
        def __init__(self):
     
            self.y = "une chaine"  # y est une variable commune à l'instance de classe
     
        def methode1(self):
     
            self.y = "une autre chaine"
     
            Toto.x = 5
     
        def methode2(self):
     
            print(self.y)
     
            print(Toto.x)
     
     
    maclasse1 = Toto()
     
    maclasse1.methode1()
     
    maclasse1.methode2()
     
     
    maclasse2 = Toto()
     
    maclasse2.methode2()
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    En fait le print existe déjà dans la première fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        if dialog.DoModal() == win32con.IDOK:
            print dialog.GetPathName().replace('\\','/')
            doc=dialog.GetPathName().replace('\\','/')
    mais si l'on clique sur le bouton 1961 avant le bouton 1960, ça ne marche pas évidement.

    D'autre part, si doc est déclaré global dans la première fonction qu'est-ce qui gène de le faire aussi dans la deuxième fonction ?

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Déclarer doc en global dans la deuxième fonction n'apporte rien: la variable étant accédée en lecture, elle doit être assignée avant.
    Le "print" affiche ce qui va être assigné à la variable "doc" par la fonction et l'important est que ce sera toujours un "str".
    Ce qui, vu l'exception, est incohérent avec ce qui est récupéré par la fonction qui appelle "open".
    => si çà plante, c'est bien parce que la variable est assigné a autre chose que ce qui est espéré, non?

    Vu que c'est une variable "globale" et que nous ne voyons qu'une partie du code, on peut toujours "conjecturer" avec plus ou moins de bonheur...
    On peut aussi proposer de structurer le code avec des classes mais si c'est juste pour s'assurer que le "doc" récupéré par la 2ème fonction est bien celui assigné par la première, renommer la variable "doc" en "docXXX" suffirait...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Salut,
    je n´ai pas fini de rédiger mon code. J ai posté la première partie car c est la que j ai des erreurs.
    la deuxieme partie du code consistera juste a attribuer des variables de la plattform. Pour la suite je pense que ca ira.

    je ne comprend pas cette erreur.
    obj = open(datei,'r') -->>>>TypeError: coercing to Unicode: need string or buffer, type found
    La suite ressemblera juste a ca::
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     a=Application.ActiveExperiment.Platforms["ds1006_2"].ActiveVariableDescription.Variables['Model Root/Parameter_FPGA1_senden/4_FPGA_AO/AO_1/Value']
        indexa = namen.index(liste[index1])
        a.ValueConverted = zahlenwerte[indexa]
     
        b=Application.ActiveExperiment.Platforms["ds1006_2"].ActiveVariableDescription.Variables['Model Root/Parameter_FPGA1_senden/4_FPGA_AO/AO_2/Value']
        indexb= namen.index(liste[index2])
        b.ValueConverted = zahlenwerte[indexb]
    Merci

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par davidmir Voir le message
    je ne comprend pas cette erreur.
    obj = open(datei,'r') -->>>>TypeError: coercing to Unicode: need string or buffer, type found
    L'erreur dit simplement que datei est un objet de type "type" et qu'il ne peut pas le convertir en string.

    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> b = type
    >>> f = open(b, 'r')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: coercing to Unicode: need string or buffer, type found
    >>>
    La variable ne contient pas ou plus ce que vous espérez avoir mis dedans...

    - W
    PS: et j'en ai profité pour préciser que vous utilisez Python 2.
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  8. #8
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    @wiztricks ,
    merci d avoir préciser que j utilise Python 2.
    J'ai utilisé les mêmes lignes de code pour un autre Démo-projet cela a fonctionné. Je suis un peu déboussolée de savoir que mon code ne fonctionne pas dans le projet actuel.
    Surement la Version de python en est le Problème.
    >>> f = open(datei, 'rb')
    j ai parfois vu aussi cette écriture mais hélas.
    Et même cette histoire de variable globale non déclaré, Jai pas eu ce problème dans l ' autre projet.

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par davidmir Voir le message
    Surement la Version de python en est le Problème.
    >>> f = open(datei, 'rb')
    .
    La version de Python donnerait un autre message d'erreur et n'est pas un problème sinon pour reproduire une erreur semblable.
    L'intention étant de vous convaincre que le problème est ailleurs que dans les bouts de code que vous nous montrez.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  10. #10
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Salut,
    ici mon code entier.je n ai pas un autre bout de 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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    #  -*- coding: cp1252 -*-
    import sys
    import os
    import csv
    import string
    import win32ui,win32con
     
    def On_Application_LayoutManagement_Schnittstellen0020FPGA2_Push0020Button_1960_ButtonClicked(sender, button):
        """
        Syntax : On_Application_LayoutManagement_Schnittstellen0020FPGA2_Push0020Button_1960_ButtonClicked
        Purpose: 
        Parameters: sender, button
        """
        sender= str(sender)
        print 'select file!'
        global File
        dialog = win32ui.CreateFileDialog(1,'','', 0,'Csv |*.csv')
        dialog.SetOFNTitle('Select CSV File')
        if dialog.DoModal() == win32con.IDOK:
            print dialog.GetPathName().replace('\\','/') 
            File=dialog.GetPathName().replace('\\','/')
     
        msge= Application.LayoutManagement.ActiveLayout.GetInstrument ('MsgBox')
        msge.Value= dialog.GetPathName().replace('\\','/')  
        #msge= Application.LayoutManagement.ActiveLayout.Instruments.Item('MsgBox')
        #print "On_Application_LayoutManagement_Schnittstellen0020FPGA2_Push0020Button_1960_ButtonClicked "
     
    def On_Application_LayoutManagement_Schnittstellen0020FPGA2_Push0020Button_1961_ButtonClicked(sender, button):
        """
        Syntax : On_Application_LayoutManagement_Schnittstellen0020FPGA2_Push0020Button_1961_ButtonClicked
        Purpose: 
        Parameters: sender, button
        """
        global File
        sender= str(sender)
        datei= File
        namen = []
        zahlenwerte = []
        #liste = []
        liste=['AO_1','AO_2','AO_3','AO_4','AO_5','AO_6','Interupt_Faktor_10ns']
        index1 = liste.index('AO_1')  
        index2 = liste.index('AO_2')
        index3 = liste.index('AO_3')
        index4 = liste.index('AO_5')
        index5 = liste.index('AO_6')
        index6 = liste.index('AO_4')
        index7=liste.append('Interupt_Faktor_10ns')
     
        obj = csv.reader(open(datei,'rb'))
        for zeile in obj:
            zeile = zeile.rstrip("\n")
            i = 0
            while i < len(liste):
                if liste[i] in zeile:   
                    teile = zeile.split(';') 
                    namen.append(str(teile[0])) 
                    zahlenwerte.append(float(teile[1])) 
                i = i+1
        obj.close()
     
     
        a=Application.ActiveExperiment.Platforms["ds1006_2"].ActiveVariableDescription.Variables['Model Root/Parameter_FPGA1_senden/4_FPGA_AO/AO_1/Value']
        indexa = namen.index(liste[index1])
        a.ValueConverted = zahlenwerte[indexa]
     
        b=Application.ActiveExperiment.Platforms["ds1006_2"].ActiveVariableDescription.Variables['Model Root/Parameter_FPGA1_senden/4_FPGA_AO/AO_2/Value']
        indexb= namen.index(liste[index2])
        b.ValueConverted = zahlenwerte[indexb]
     
        c=Application.ActiveExperiment.Platforms["ds1006_2"].ActiveVariableDescription.Variables['Model Root/Parameter_FPGA1_senden/4_FPGA_AO/AO_3/Value']
        indexc = namen.index(liste[index3])
        c.ValueConverted = zahlenwerte[indexc]
     
        d=Application.ActiveExperiment.Platforms["ds1006_2"].ActiveVariableDescription.Variables['Model Root/Parameter_FPGA1_senden/4_FPGA_AO/AO_4/Value']
        indexd = namen.index(liste[index6])
        d.ValueConverted = zahlenwerte[indexd]
     
        e=Application.ActiveExperiment.Platforms["ds1006_2"].ActiveVariableDescription.Variables['Model Root/Parameter_FPGA1_senden/4_FPGA_AO/AO_5/Value']
        indexe= namen.index(liste[index4])
        e.ValueConverted = zahlenwerte[indexe]
     
        f=Application.ActiveExperiment.Platforms["ds1006_2"].ActiveVariableDescription.Variables['Model Root/Parameter_FPGA1_senden/4_FPGA_AO/AO_6/Value']
        indexf = namen.index(liste[index5])
        f.ValueConverted = zahlenwerte[indexf]
     
        g=Application.ActiveExperiment.Platforms["ds1006_2"].ActiveVariableDescription.Variables ['Model Root/Testsystem/Senden/Rahmenprojektierung/Interupt_Faktor_10ns/Value']
        indexg = namen.index(liste[index7])
        g.ValueConverted = zahlenwerte[indexg]
    #print "On_Application_LayoutManagement_Schnittstellen0020FPGA2_Push0020Button_1961_ButtonClicked "
    1er probleme: File not defined ensuite
    obj = open(datei,'rb') -->>>>TypeError: coercing to Unicode: need string or buffer, type found
    Merci

  11. #11
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Très vraisemblablement ta deuxième fonction est appelée avant la première.

    Ton code est encombré de beaucoup de choses inutiles, le simplifier te permettra de mieux visualiser le déroulement du code.

    Par exemple, si l'on suit correctement ton code, ta deuxième fonction devrait pouvoir être grandement simplifiée comme ceci:
    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
     
    def On_Application_LayoutManagement_Schnittstellen0020FPGA2_Push0020Button_1961_ButtonClicked(sender, button):
        """
        Syntax : On_Application_LayoutManagement_Schnittstellen0020FPGA2_Push0020Button_1961_ButtonClicked
        Purpose: 
        Parameters: sender, button
        """
        global File
        sender= str(sender)
        datei= File
        print "Filename:", File     # vérification !
        namen = []
        zahlenwerte = []
        obj = csv.reader(open(datei,'rb'))
        for zeile in obj:
            zeile = zeile.rstrip("\n")
            i = 0
            while i < len(liste):
                if liste[i] in zeile:   
                    teile = zeile.split(';') 
                    namen.append(str(teile[0])) 
                    zahlenwerte.append(float(teile[1])) 
                i = i+1
        obj.close()
        values = []
        for i in ['AO_1','AO_2','AO_3','AO_4','AO_5','AO_6','Interupt_Faktor_10ns']:
            key = 'Model Root/Parameter_FPGA1_senden/4_FPGA_AO/%s/Value' % i
            val = Application.ActiveExperiment.Platforms["ds1006_2"].ActiveVariableDescription.Variables[key]
            idx = namen.index(i)
            val.ValueConverted = zahlenwerte[idx]    # Tu es sure de ton code ici ?
            values.append(val)
     
        print values

  12. #12
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    @VinsS ,
    comme mon code le montre le bouton 1960 est exécuté en premier.
    a l aide de ce bouton je dois choisir le csv.file désiré. Avec le deuxième bouton 1961 les valeurs (valeurs du "Layout' contenues dans le csv.file)sont changées.
    Merci bien pour la simplification de mon code.

  13. #13
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 14
    Points : 7
    Points
    7
    Par défaut File is not defined
    @VinsS,
    le premier problème :
    File not defined(dans la fct 2), pourtant j'utilise une variable globale dans les 2 fonctions.
    Merci

  14. #14
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par davidmir Voir le message
    @VinsS,
    le premier problème :
    File not defined(dans la fct 2), pourtant j'utilise une variable globale dans les 2 fonctions.
    Merci
    En Python, une variable n'est définie qu'après lui avoir assigné un objet (global ne suffit pas...).
    C'est ce que fait la fonction 1... Et si vous passez dans la fonction 2 avant, ca plante.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  15. #15
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    @wiztricks,
    j'exécute le bouton 1 en premier et le bouton 2 vient en second lieu.
    Merci.

  16. #16
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par davidmir Voir le message
    j'exécute le bouton 1 en premier et le bouton 2 vient en second lieu.
    Ce n'est pas ce que dit l'interpréteur (puisque la variable n'est pas définie).
    L'interpréteur a toujours raison: il faudra vous y faire.
    Après on veut bien passer du temps à vous aider à trouver la cause de votre erreur de codage mais pour cela il faudrait pouvoir reproduire quelque chose...i.e. constater que ce que vous racontez est vrai même si l'interpréteur dit le contraire.
    La programmation est une sorte de science, si on ne sait pas reproduire, on pourra compatir mais pas comprendre, aider,...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  17. #17
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Bonjour,
    merci bien pour les Remarques et l aide apportée.
    J ' ai un autre souci.
    mon programme plante a ce niveau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while i<len(liste):
             if liste[i] in zeile:   
                 teile = zeile.split(';')
    A première vue je ne vois pas la faute.

    Merci si vous avez une idée

  18. #18
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Quel est le message d'erreur ?

  19. #19
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    @ vinsS,
    pour ta question précédente: je ne recevais aucun message d ' erreur
    ControlDesk plantait tout simplement. C est résolu.
    j ai une question:
    Je trouve le code simplifié génial.
    puis- je utiliser plusieurs keys dans le même code?
    Key1= 'Model Root/Parameter_FPGA1_senden/4_FPGA_AO/%s/Value' %i
    pour 'Model Root/Parameter_FPGA1_senden/4_FPGA_AO/AO_1/Value' >>>> (AO_1 - AO_6)
    et
    key2='Model Root/Testsystem/Senden/Rahmenprojektierung/%s/Value' %i
    pour 'Model Root/Testsystem/Senden/Rahmenprojektierung/Interupt_Faktor_10ns/Value'

    Merci a toi.

  20. #20
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Heu, pas trop sûr de comprendre.

    Ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        for i in ['AO_1','AO_2','AO_3','AO_4','AO_5','AO_6','Interupt_Faktor_10ns']:
            key = 'Model Root/Parameter_FPGA1_senden/4_FPGA_AO/%s/Value' % i
            val = Application.ActiveExperiment.Platforms["ds1006_2"].ActiveVariableDescription.Variables[key]
            idx = namen.index(i)
            val.ValueConverted = zahlenwerte[idx]    # Tu es sure de ton code ici ?
            values.append(val)
    pour chaque item de la liste on crée l'objet val qui est ensuite ajouté à la liste value

    Donc values[0] correspond à 'AO_1', values[1] à 'AO_2' et values[6] à 'Interupt_Faktor_10ns'

    Si tu as besoin de la liste des keys aussi, il suffit de la créer dans la même boucle.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/11/2009, 11h13
  2. Réponses: 2
    Dernier message: 29/09/2008, 10h10
  3. utilisation de getdate() dans une fonction ?
    Par devdev dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 08/03/2005, 17h40
  4. Utilisation de Getdate dans une fonction
    Par BaronSamdi dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 16/11/2004, 10h12
  5. pb d'utilisation du resultat d'1 requete dans 1 autre
    Par joquetino dans le forum Langage SQL
    Réponses: 7
    Dernier message: 09/03/2004, 15h58

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