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 :

Coordonnées dans l'espace [X,Y,Z]


Sujet :

Tcl/Tk

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Novembre 2015
    Messages : 35
    Points : 24
    Points
    24
    Par défaut Coordonnées dans l'espace [X,Y,Z]
    Bonjour ,

    j'ai dans un fichier texte des lignes comme celle-ci ( pour info ce sont des coordonnées dans l'espace X,Y,Z,I,J,K)
    ex : DATA/-47,557,-48,8555,53,4246,0,0518759,0,0,99865354
    DATA/192,691,174,5405,6,0,0,1
    ...

    je souhaite récupérer dans chaque lignes les 3 première valeurs , mon problème c'est que ces lignes peuvent avoir jusqu'à 12 valeurs séparées par des virgules.
    Pour des lignes avec 6 ou 12 valeurs c'est simple d'avoir mes coordonnées X Y et Z , mais pour toutes les autres conditions je galère !!

    Y'a t-il un moyen simple de récupérer mes infos ?

    Merci de votre aide

  2. #2
    Membre à l'essai
    Homme Profil pro
    -
    Inscrit en
    Novembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : -

    Informations forums :
    Inscription : Novembre 2015
    Messages : 8
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par Mkn31 Voir le message
    Y'a t-il un moyen simple de récupérer mes infos ?
    Oui, comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    set fin [open data.txt r]
    set data [read $fin]
    close $fin
    foreach l [split $data \n] {
        lassign [split [string map {"DATA/" ""} $l] ","] x y z 
        puts "x = '$x' - y = '$y' - z = '$z'"
    }

  3. #3
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Novembre 2015
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    Merci Kroctk de votre réponse rapide et de votre solution .

    Je me suis surement mal exprimé , ce que je souhaite c'est avoir ce résultat là :

    DATA/-47,557,-48,8555,53,4246,0,0518759,0,0,99865354
    DATA/192,691,174,5405,6,0,0,1

    Résultat :

    x= '-47,557' - y = '-48,8555' - z = '53,4246'
    x= '192,691' - y = '174,5405' - z = '6'

    Je ne sais si c'est pas possible sachant qu' au maximum je peux avoir 2 valeurs pour $x , 2 valeurs pour $y et 2 valeurs pour $z , si vous avez une solution ??

    Merci par avance

  4. #4
    Membre à l'essai
    Homme Profil pro
    -
    Inscrit en
    Novembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : -

    Informations forums :
    Inscription : Novembre 2015
    Messages : 8
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    Il est fort peut judicieux d'utiliser le même caractère comme séparateur décimal et séparateur de données ! Néanmoins, en adaptant légèrement le code comme ça, c'est bon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach l [split $data \n] {
        lassign [split [string map {"DATA/" ""} $l] ","] x xd y yd z zd 
        puts "x = '[join "$x $xd" ,]' - y = '[join "$y $yd" ,]' - z = '[join "$z $zd" ,]'"
    }
    Ou encore, s'il convient de constituer de vraies valeurs décimales exploitable plus tard par [expr] :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    foreach l [split $data \n] {
        lassign [split [string map {"DATA/" ""} $l] ","] x xd y yd z zd 
        set X [join "$x $xd" .]
        set Y [join "$y $yd" .]
        set Z [join "$z $zd" .]
        puts "x = '$X' - y = '$Y' - z = '$Z'"
    }

  5. #5
    Membre habitué
    Homme Profil pro
    rien
    Inscrit en
    Décembre 2015
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Décembre 2015
    Messages : 282
    Points : 144
    Points
    144
    Par défaut
    Bravo Kroctk ! je t'ai mis +1 t'est trop fort !
    C'est vrai que c'est mieux quand le séparateur est différent du caractère qui sert de décimale.

    Moi je mets toujours * comme séparateur.

    EDIT :
    Désolé j'édite mon message car j'étais en javascript et je me suis retrouvé sur le TCL/TK je comprend pas :/
    Désolé.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Novembre 2015
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    Kroctk , j'ai encore des soucis avec votre code quand mes valeurs X,Y ou Z ne contiennent pas de valeurs décimale .
    Mais maintenant avec votre tris , je peux dire que $xd $yd et $zd ne peuvent pas être égales ou inf. à 0 ,(mes lignes "DATA" ne sortent pas de valeurs décimale égales à 0 ou inf. à 0).

    Merci encore

Discussions similaires

  1. Coordonnées sphériques->cartésiennes dans l'espace
    Par dridri85 dans le forum Mathématiques
    Réponses: 4
    Dernier message: 20/02/2011, 15h51
  2. linker 2 projets inclus dans un espace de travail
    Par petdelascar dans le forum C
    Réponses: 2
    Dernier message: 12/01/2006, 20h02
  3. Problème d'équations dans l'espace (perspective -> 3D)
    Par Rémiz dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 19/12/2005, 17h43
  4. rotations dans l'espace -validation d'un modèle mathématique
    Par khayyam90 dans le forum Mathématiques
    Réponses: 20
    Dernier message: 16/08/2005, 13h26
  5. Découpage dun string dans l'espace
    Par Clad3 dans le forum OpenGL
    Réponses: 4
    Dernier message: 24/03/2005, 17h25

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