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

Cobol Discussion :

[debutant] Eclater une chaine dans un tableau


Sujet :

Cobol

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2011
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 1
    Points : 2
    Points
    2
    Par défaut [debutant] Eclater une chaine dans un tableau
    Bonjour à tous,

    Je cherche à éclater un chaine dans un tableau indexé et je n'arrive pas à trouver une solution à mon probleme pourtant je sens que la solution est toute bête

    Je cherche à découper motSaisi dans motSaisiTablo :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
           77 motSaisi pic X(25) value " ".
           01 motSaisiTab.
            02 motSasiiTablo pic X occurs 25 value " ".
    
           accept motSaisi.
    
           ...

    Merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Bonjour.

    Essaie ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
           01 motSaisi pic X(25) value " ".
           01 motSaisiTab redefines motSaisi.
            02 motSasiiTablo pic X occurs 25.
    
           accept motSaisi.
    
           ...
    Si motSaisi = ABCDEF......Y,
    motSasiiTablo (1) = A
    motSasiiTablo (2) = B
    motSasiiTablo (3) = C
    ....
    motSasiiTablo (25) = Y

  3. #3
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 058
    Points
    32 058
    Par défaut
    +1 avec la réponse ci-dessus. En fait, dans le code initial, il n'y a pas de lien entre motSaisi et motSaisiTab. Dont, le tableau reste vide. Ce qui est fait en plus dans le code de Hédhili Jaïdane est le REDEFINES, qui fait pointer les 2 variables sur le même contenu. C'est la solution la plus élégante, en ce sens qu'elle ne nécéssite pas d'ordre additionnel. Maintenant, il n'est pas forcément possible de la pratiquer, suivant que motSaisi est à ta main ou non(il pourrait être défini dans une COPY appartenant à une autre équipe, par exemple)

    Dans ce cas, d'autres solutions pourraient être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    accept motSaisi
    move motSaisi to accept motSaisiTab
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    accept motSaisi
    Perform varying I from 1 by 1 until I > length of motSaisiTab 
        move motSaisi( I : 1 ) to motSasiiTablo (I)
    End-Perform
    etc.....(la dernière solution te montre aussi comment faire le découpage sans prédéfinition. Suivant les normes locales, elle sera encouragée ou à bannir).
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

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

Discussions similaires

  1. [debutant] Split d'une chaine dans un tableau
    Par insect INC dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 13/04/2015, 13h48
  2. Couper une chaine dans un tableau
    Par Z-fly dans le forum Réseau
    Réponses: 5
    Dernier message: 06/07/2008, 21h31
  3. Réponses: 10
    Dernier message: 05/01/2008, 11h59
  4. Lettres d'une chaine dans un tableau
    Par Girzi dans le forum Langage
    Réponses: 2
    Dernier message: 07/07/2006, 09h36
  5. [Tableaux] Recherche d'une chaine dans un tableau
    Par tom06440 dans le forum Langage
    Réponses: 5
    Dernier message: 20/10/2005, 23h27

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