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

Scilab Discussion :

Function qui retourne une struct [Débutant]


Sujet :

Scilab

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Avril 2020
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Function qui retourne une struct
    Bonjour à tous,

    Dans une fonction je cherche à remplir les champs d'une structure. Cependant, même si ma syntaxe est bonne, la fonction ne semble par sortir le struct.
    ci dessous mon 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
     
    planetaire = struct('nom',,'diametreMineur',,'diametreIN',0,'diametreOUT',,'penteIN',,'penteOUT')
     
    function [planetaire] = dataPTJ(selectionPlanetaire)
     
        //On ouvre les fichiers excel de base de donnees
        [fd,SST,Sheetnames,Sheetpos] = xls_open('\\---------------------')
     
        //On lit les valeurs
        [ValeurPlanetaire,TextIndp] = xls_read(fd,Sheetpos(1)) // planétaire
     
        //On ferme le fichier
        mclose(fd)
     
        //on affecte les valeurs dans nos objets suite à notre selection
     
        //PLANETAIRE
        isp=find(ValeurPlanetaire(4,:)==selectionPlanetaire);
        // Nom planétaire
        planetaire.nom=SST(TextIndp(5,isp));
        // Diamètre mineur (mm)
        planetaire.diametreMineur=ValeurPlanetaire(6,isp);
        // Diamètre d'entrée (mm)
        planetaire.diametreIN=ValeurPlanetaire(7,isp);
        // Diamètre de fond (mm) --> gorge d'ouverture côté milieu diff
        planetaire.diametreOUT=ValeurPlanetaire(8,isp);
        // pente entrée (°)
        planetaire.penteIN=ValeurPlanetaire(9,isp);
        // pente sortie (°)
        planetaire.penteOUT=ValeurPlanetaire(10,isp);
     
    endfunction
    J'ai vérifier en dehors d'une fonction et ça fonctionne correctement
    Y a t'il un moyen de retourner un structure rempli de données dans une fonction ?

    Merci de votre aide
    LL

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Mai 2020
    Messages : 6
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    Il faut insérer la définition des champs dans la fonction, ça n'est pas possible autrement :

    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
     
    function [planetaire] = dataPTJ(selectionPlanetaire)
     
        //On ouvre les fichiers excel de base de donnees
        [fd,SST,Sheetnames,Sheetpos] = xls_open('\\---------------------')
     
        //On lit les valeurs
        [ValeurPlanetaire,TextIndp] = xls_read(fd,Sheetpos(1)) // planétaire
     
        //On ferme le fichier
        mclose(fd)
     
        //on affecte les valeurs dans nos objets suite à notre selection
        planetaire = struct('nom',,'diametreMineur',,'diametreIN',0,'diametreOUT',,'penteIN',,'penteOUT')
     
        //PLANETAIRE
        isp=find(ValeurPlanetaire(4,:)==selectionPlanetaire);
        // Nom planétaire
        planetaire.nom=SST(TextIndp(5,isp));
        // Diamètre mineur (mm)
        planetaire.diametreMineur=ValeurPlanetaire(6,isp);
        // Diamètre d'entrée (mm)
        planetaire.diametreIN=ValeurPlanetaire(7,isp);
        // Diamètre de fond (mm) --> gorge d'ouverture côté milieu diff
        planetaire.diametreOUT=ValeurPlanetaire(8,isp);
        // pente entrée (°)
        planetaire.penteIN=ValeurPlanetaire(9,isp);
        // pente sortie (°)
        planetaire.penteOUT=ValeurPlanetaire(10,isp);
     
    endfunction

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/10/2017, 17h12
  2. Fonction qui retourne une collection
    Par superfly dans le forum Oracle
    Réponses: 9
    Dernier message: 25/06/2009, 19h02
  3. Une Form qui retourne une valeur?
    Par say dans le forum C++Builder
    Réponses: 4
    Dernier message: 06/02/2006, 11h05
  4. methode qui retourne une liste d'objets du meme type
    Par anoukhan dans le forum Oracle
    Réponses: 8
    Dernier message: 12/01/2006, 19h38
  5. [Tableaux] function qui retourne un tableau
    Par toure32 dans le forum Langage
    Réponses: 1
    Dernier message: 21/12/2005, 22h16

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