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

WinDev Discussion :

Comment initialiser un tableau ?


Sujet :

WinDev

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 16
    Points : 8
    Points
    8
    Par défaut Comment initialiser un tableau ?
    Bonjour,

    J'ai une question toute simple, mais je n'arrive pas à en trouver la réponse... Comment initialiser un tableau d'entiers, afin de produire le même résultat que le code C suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int tableau[6] = {1, 2, 3, 4, 5, 6};
    Merci de votre aide

    (j'ai bien tenté "tab est un tableau de 6 entiers = [1 2 3 4 5 6]" mais ça ne fonctionne pas... pourtant aucune erreur de syntaxe n'est vue... juste une erreur lors de l'exécution)

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Je crains qu'il n'y ait pas d'équivalent et qu'il soit nécessaire d'attribuer les valeurs "manuellement".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomTableau[Indice]=Valeur
    Ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TableauInsère(NomTableau,Indice,Valeur)
    Ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TableauAjoute(NomTableau,Valeur)
    (Attention TableauAjoute() ajoute un élément au tableau. Donc un tabeau de 6 éléments, par ex., sera porté à 7 éléments et la valeur sera attribuée au septième élément)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Merci, je redoutais une réponse telle que celle-ci...

    Je ne trouve pas très pratique de devoir initialiser un tableau de 64 éléments case par case...

    La doc de WD ne parle effectivement que de TableauInsère et TableauAjoute, donc je vais voir de ce côté...

  4. #4
    Membre averti Avatar de tunizar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 573
    Points : 427
    Points
    427
    Par défaut
    Salut,

    MonTableau est un tableau de 6 entier
    nCpt est entier =1
    POUR nCpt=1 A Dimension(MonTableau)
    MonTableau[nCpt]=nCpt
    FIN

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    OK, mon exemple C était trop trivial...
    En fait je ne veux pas mettre une suite de nombres consécutifs, mais par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int tab[] = {7, 12, 17, 22,  7, 12, 17, 22,  7, 12, 17, 22,  7, 12, 17, 22, 5,  9, 14, 20, ...};

  6. #6
    Membre averti Avatar de tunizar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 573
    Points : 427
    Points
    427
    Par défaut
    MonTableau est un tableau dynamique

    // Traitement de l'élément à ajouter
    ...
    // redimonsionner le tableau
    Dimension(MonTableau,Dimension(MonTableau)+1)
    MonTableau[Dimension(MonTableau)]=ElementAjouter

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    J'ai oublié de le préciser, mais je veux éviter 64 lignes de code pour initialiser un tableau... je voulais savoir si WD propose une syntaxe "rapide" d'initialisation, mais manifestement ce n'est pas possible.

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Il n'y a pas de solution "à la C" qui permette en une ligne d'assigner des valeurs à un tableau. Il faut, par une des 3 manières décrites dans moon premier message, attibuer une valeur à chaque élément concerné.

  9. #9
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Points : 5 953
    Points
    5 953
    Par défaut
    Perso je me suis fait une ch'tite proc.

    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
     
    Procedure P_ChargeTableau( pTableau, pValeurs, pType = 1)
    //Cette procedure ne marche que pour les Tableaux à une dimension
    //pType est un entier 1 = Chaine, 2 = numérique
    local
       i est un entier
       n est un entier
       cpValeur est une chaine
     
    n = dimension( pTableau)
    pour i = 1 à n
      cpValeur = extraitchaine( pValeurs, i) //Le séparateur est TAB
      si pType = 1 alors
        pTableau[i] = cpValeur
      sinon
        pTableau[i] = val( cpValeur)
      fin
    fin
    Voila, si ça peut t'aider

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    @kwasin

    J'avais commencé à chercher dans ce sens, extraire le tableau à partir d'une chaîne, et ta solution me semble très bien correspondre à ce que je cherche... merci beaucoup !

  11. #11
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Points : 5 953
    Points
    5 953
    Par défaut
    Il n'y a pas de quoi, c'est un plaisir que de savoir son code utiliser par quelqu'un d'autre

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

Discussions similaires

  1. [XL-2007] comment initialiser un tableau ou une plage à vide
    Par issoram dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/09/2010, 22h53
  2. Comment initialiser un tableau de struct ?
    Par konfo dans le forum C++Builder
    Réponses: 2
    Dernier message: 23/03/2009, 15h51
  3. Réponses: 7
    Dernier message: 30/01/2007, 09h48
  4. Réponses: 5
    Dernier message: 11/05/2006, 14h15
  5. Réponses: 35
    Dernier message: 14/02/2006, 18h57

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