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

Tcl/Tk Discussion :

Problème de syntaxe Tcl


Sujet :

Tcl/Tk

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    en stage de fin d'etude en genie mecanique
    Inscrit en
    Décembre 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : en stage de fin d'etude en genie mecanique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2021
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Problème de syntaxe Tcl
    Bonjour tout le monde, je viens d'arriver sur le forum et j'aurais besoin d'un peu d'aide. C'est ma première fois de coder sur tcl et c'est vraiment basique mon problème je pense.
    Mon problème est le suivant: Je travaille sur hypermesh ( logiciel de modelisation). les components sont déjà créés. J'aimerais automatiser le fait de créer des includesfiles qui porteront le même nom que les components et ensuite migrer le corps du component dans l'includefile créé portant le même nom. c'est un code de moins de 20 lignes de code. J'ai donc essayer de le faire tant bien que mal, j'ai essayé une première méthode avec une boucle for et ensuite une deuxieme methode avec foreach mais ca ne marche pas. J'ai l'impression que ma syntaxe même n'est pas bonne. Pouvez vous m'aidez svp? j'arrive pas charger le fichier sur le site

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #  Ce mini programme sert dans un premier temps à créer automatiquement des includefiles par component avec la même dénomination  
    #       et ensuite dans un second temps à migrer la pièce du component a l'includefile
     
    #DEBUT DU MINI PROG
     
    #  2 données doivent être entrées pour le bon fonctionnement du prog a savoir le nombre de component a réorganiser qui sera stocké dans la variable Nbr_de_components 
    #       et aussi la liste des components qui sera stocké dans la variable liste_de_component
     
    #Definir le nombre de component
    set Nbr_de_components 5
    #Definir la liste de components
    set liste_de_component {FRAME_76 FRAME_77 FRAME_78 FRAME_79 FRAME_80}
    1iere méthode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    for {set i 0} {$i < $Nbr_de_components} {incr i} 
    {
         puts *startnotehistorystate {Create Include "includefile_temp"}
    	 puts *createinclude 0 "includefile_temp" "includefile_temp" 0
    	 puts *endnotehistorystate {Create Include "includefile_temp"}
    	 puts *startnotehistorystate {Renamed Includefile from "includefile_temp" to ""[lindex $liste_de_component $i]".dat"}
    	 puts *updateinclude [expr $i + 10000] 1 ""[lindex $liste_de_component $i]"" 1 ""[lindex $liste_de_component $i]"" 0 0
    	 puts *endnotehistorystate {Renamed Includefile from "includefile_temp" to ""[lindex $liste_de_component $i]""}
    	 puts *createmark components 1 ""[lindex $liste_de_component $i]""
    	 puts *markmovetoincludewithcontents components 1 [expr $i + 10000] "elements nodes"
     
    }

    2ieme méthode

    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
    set i 0
    foreach liste_de_component[FRAME_76 FRAME_77 FRAME_78 FRAME_79 FRAME_80] 
    foreach liste_de_component[CLIPS_18 CLIPS_19] 
    {
       puts *startnotehistorystate {Create Include "includefile_temp"}
    	puts *createinclude 0 "includefile_temp" "includefile_temp" 0
    	puts *endnotehistorystate {Create Include "includefile_temp"}
    	puts *startnotehistorystate {Renamed Includefile from "includefile_temp" to "$liste_de_component"}
    	puts *updateinclude [expr $i + 10000] 1 "$liste_de_component" 1 "$liste_de_component" 0 0
    	puts *endnotehistorystate {Renamed Includefile from "includefile_temp" to "$liste_de_component"}
    	puts *createmark components 1 "$liste_de_component"
    	puts *markmovetoincludewithcontents components 1 [expr $i + 10000] "elements nodes"
    	incr i 1
    }
     
     
    #Fin du programme

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 346
    Points : 530
    Points
    530
    Par défaut
    Bonsoir,

    A défaut de connaître Hyeprmesh, la syntaxe des boucles for et foreach sur une liste est la suivante :

    Pour for :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    set l {A B C D E F}
     
    for {set i 0} {$i < [llength $l]} {incr i} {
       puts [lindex $l $i]
    }
    Pour foreach :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    set l {A B C D E F}
     
    foreach lettre $l {
       puts $lettre
    }

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    en stage de fin d'etude en genie mecanique
    Inscrit en
    Décembre 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : en stage de fin d'etude en genie mecanique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2021
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    bonjour canvas et merci pour la réponse. Effectivement j'avais une erreur dans la syntaxe. Ce que j'ai donc modifié mais la console sur hypermesh me dit qu'il y'a toujours une erreur. Je reposte là mon code de 10 ligne modifié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #debut du prog
    set liste_de_component {FRAME_76 FRAME_77 FRAME_78 FRAME_79 FRAME_80}
    for {set i 0} {$i < [llength $liste_de_component]} {incr i} 
    	{
    	puts *startnotehistorystate {Create Include "includefile_temp"}
    	puts *createinclude 0 "includefile_temp" "includefile_temp" 0
    	puts *endnotehistorystate {Create Include "includefile_temp"}
    	puts *startnotehistorystate {Renamed Includefile from "includefile_temp" to ""[lindex $liste_de_component $i]".dat"}
    	puts *updateinclude [expr $i + 10000] 1 ""[lindex $liste_de_component $i]"" 1 ""[lindex $liste_de_component $i]"" 0 0
    	puts *endnotehistorystate {Renamed Includefile from "includefile_temp" to ""[lindex $liste_de_component $i]""}
    	puts *createmark components 1 ""[lindex $liste_de_component $i]""
    	puts *markmovetoincludewithcontents components 1 [expr $i + 10000] "elements nodes"
    	}
    #fin du prog
    j'arrive vraiment pas à le débuguer d'autant plus que c'est juste une dizaine de lignes de code. le message erreur que que la console me renvoie est le suivant:

    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
    wrong # args: should be "for start test next command"
    wrong # args: should be "for start test next command"
        while executing
    "for {set i 0} {$i < [llength $liste_de_component]} {incr i} "
        (file "C:/Users/codo/Desktop/Projet-Stage/Projet 1/fichier/for.tcl" line 2)
        invoked from within
    "source {C:/Users/codo/Desktop/Projet-Stage/Projet 1/fichier/for.tcl}"
        ("uplevel" body line 1)
        invoked from within
    "# Compiled -- no source code available
    error "called a copy of a compiled script""
        (procedure "::hw::RunTclTkScpt" line 1)
        invoked from within
    "::hw::RunTclTkScpt"
        ("eval" body line 1)
        invoked from within
    "# Compiled -- no source code available
    error "called a copy of a compiled script""
        (procedure "::hw::p_TbCmdSelection" line 1)
        invoked from within
    "::hw::p_TbCmdSelection ::hw::RunTclTkScpt runMenu 0"
        ("eval" body line 1)
        invoked from within
    "eval ::hw::p_TbCmdSelection ::hw::RunTclTkScpt runMenu 0"
        ("eval" body line 1)
        invoked from within
    "# Compiled -- no source code available
    error "called a copy of a compiled script""
        (procedure "::hwt::ReleaseCanvasButton" line 1)
        invoked from within
    "::hwt::ReleaseCanvasButton 0 ._Tb_Scripting.runMenu.b"
        (command bound to event)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 346
    Points : 530
    Points
    530
    Par défaut
    Bonsoir,

    L'accolade ouvrante { doit être sur la même ligne que le for :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    set l {A B C D E F}
     
    for {set i 0} {$i < [llength $l]} {incr i} {
       puts [lindex $l $i]
    }
    
    A
    B
    C
    D
    E
    F
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for {set i 0} {$i < [llength $l]} {incr i} 
    {
       puts [lindex $l $i]
    }
     
    wrong # args: should be "for start test next command"

Discussions similaires

  1. probleme de syntaxe sql dans VB
    Par njac dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 20/05/2005, 14h41
  2. [VB.NET] Probleme de syntaxe
    Par microthib dans le forum Windows Forms
    Réponses: 4
    Dernier message: 17/03/2005, 13h49
  3. probleme fonction syntaxe
    Par gIch dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 28/02/2005, 09h52
  4. [Débutante] Problèmes de syntaxe
    Par new_wave dans le forum Prolog
    Réponses: 4
    Dernier message: 02/11/2004, 18h39
  5. Problemes de syntaxe
    Par maahta dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 01/10/2003, 13h40

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