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 :

balayer une variable de gauche à droite


Sujet :

Cobol

  1. #1
    Membre habitué
    Inscrit en
    Novembre 2006
    Messages
    182
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 182
    Points : 125
    Points
    125
    Par défaut balayer une variable de gauche à droite
    Bonjour,

    J’ai une variable ID-MLE PIC X (32).

    Un chiffre entier peut-être stocké en alphanumériques dans la variable
    ID-MLE

    Comment je peux balayer la variable ID-MLE de gauche à droite pour trouver la position du chiffre entier qui correspondra au premier chiffre ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’ou ‘9’.
    Il faut ensuite déterminer la longueur de cette entier en balayant la variable ID-MLE de droite à gauche et en déterminant la position du premier chiffre ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’ou ‘9’.

    Merci

  2. #2
    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
    par exemple :
    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
    77 Position pic 9(2).
    77 Position1 pic 9(2).
    77 Position2 pic 9(2).
    77 Position3 pic 9(2).
    77 Longueur pic 9(2).
    77 destination-finale pic X(18).
    (.../...)
    
    move zero to position1 position2
    perform varying position from 1 by 1
       until position > length of ID-MLE
       if ID-MLE (position : 1) is numeric
          move position to position2
          if position1 = zero
             move position to position1
          end-if
       end-if
    end-perform
    move zeroes to destination-finale
    compute longueur = position2 - position1 + 1
    compute position3 = length of destination-finale - longueur + 1 
    move ID-MLE ( position1 : longueur ) to destination-finale ( position3 : longueur)
    .
    j'ai pas le temps de tester, et il y a sans doute moyen de faire mieux.

    EDIT : et ça manque de contrôles pour tester les erreurs.
    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.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 37
    Points : 44
    Points
    44
    Par défaut
    Bonjour,

    Il suffit d'utiliser un tableau de caractères et de parcourir ensuite ce tableau par une boucle ou alors utiliser un SEARCH.

    EDIT : je suis trop lent...

  4. #4
    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.

    Tu as un exemple utilisant les tableaux dans cette discussion :
    [Débutant] Extraire une sous-chaîne de caractères

  5. #5
    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
    Citation Envoyé par ekans Voir le message
    Bonjour,

    Il suffit d'utiliser un tableau de caractères et de parcourir ensuite ce tableau par une boucle ou alors utiliser un SEARCH.

    EDIT : je suis trop lent...
    Désolé pour le grillage. Tu as raison : il est sans doute plus propre de découper la chaine de caractères en entrée dans un tableau de caractères plutôt que de d'utiliser le découpage d'un champ unique par des "reference modifiers" comme je l'ai fait. J'ai juste été au plus rapide.

    Certains sites interdisent d'ailleurs explicitement les "reference modifiers".
    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.

  6. #6
    Membre habitué
    Inscrit en
    Novembre 2006
    Messages
    182
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 182
    Points : 125
    Points
    125
    Par défaut
    Bonjour,

    J'ai testé le code de el_slapper est le résultat est correct

    Merci beaucoup.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 08/09/2012, 22h11
  2. Cadrer une variable avec des zéros à gauche
    Par saysay dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 07/08/2008, 11h05
  3. alignement de droite à gauche et de gauche à droite dans une liste de choix
    Par fraisa1985 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 16/07/2008, 13h05
  4. Réponses: 2
    Dernier message: 08/01/2008, 11h34
  5. Réponses: 4
    Dernier message: 09/11/2006, 00h32

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