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 :

Pointeur en COBOL


Sujet :

Cobol

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Pointeur en COBOL
    Bonjour,

    Dans le cadre d'une réflexion sur la mise en place d'une solution, je souhaiterai savoir s'il est possible de récupérer un nom de donnée à partir de la valorisation d'une autre.
    Je m'explique, est-il possible de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     01  ENTREE.
         05  DONNEE                   PIC X(6)    VALUE "SORTIE".
         05  CPTR  USAGE POINTER.
     01  SORTIE                       PIC X(1)    VALUE SPACE.
    
         MOVE "S" TO CPTR.
    Et valoriser automatiquement à "S" la donnée SORTIE ?

    Merci d'avance pour vos réponses .

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Ingénieur d'Etude Mainframe/AS400
    Inscrit en
    Novembre 2012
    Messages
    1 765
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'Etude Mainframe/AS400
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2012
    Messages : 1 765
    Points : 10 748
    Points
    10 748
    Par défaut
    Bonjour, à ma connaissance non, ça n'est pas possible.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci de cette réponse ! C'est quand même bien dommage

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Ingénieur d'Etude Mainframe/AS400
    Inscrit en
    Novembre 2012
    Messages
    1 765
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'Etude Mainframe/AS400
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2012
    Messages : 1 765
    Points : 10 748
    Points
    10 748
    Par défaut
    Sinon as-tu regardé du côté des "niveaux 88" qui sont très utiles pour des tests logiques ? (ça n'est pas ta question initiale mais tu peux t'en approcher).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    01 ENTREE PIC X(1).
       88 SORTIE VALUE 'S'
       88 ENTREE VALUE 'E'
    Tu peux ensuite faire des choses du type :
    Et ensuite des tests sur la condition : IF SORTIE

  5. #5
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 130
    Points : 38 543
    Points
    38 543
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Peux tu expliquer ce que tu veux faire fonctionnellement, car là j'avoue ne pas comprendre le but à atteindre

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    tout d'abord, merci de vos réponses.
    Concernant l'explication fonctionnelle, cela ne vas pas être simple ...

    Je souhaiterai valorisé une donnée X à une valeur précise à partir de la valeur contenue dans une donnée.
    Comme indiqué au dessus, j'aurais pour exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    - TEST      PIC X(06) VALUE "SORTIE"
    - SORTIE  PIC X(01).
    Je souhaiterai savoir s'il est possible de valoriser à "S" la donnée contenu dans la donnée "TEST" !! (O__o), (Il y aura forcement la donnée correspondante déclarée dans la donnée "TEST")
    C'est à dire, avoir "S" dans la donnée SORTIE au final.

    Cordialement,
    Thomas.

  7. #7
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 130
    Points : 38 543
    Points
    38 543
    Billets dans le blog
    9
    Par défaut
    Par rapport à ton post initial, la variable CPTR est décrite en usage pointer, l'instruction move est donc invalide.
    L'usage "pointer" permet de récupérer l'adresse d'une autre variable (pointer sur son adresse) ou à "null" si cette adresse n'est pas connue.
    La syntaxe pour positionner la valeur de CPTR est "SET ADDRESS OF CPTR TO ADDRESS OF MAVARIABLE..."

    Tu ne peux pas obtenir le nom d'une variable cobol, mais son contenu (MOVE) ou son adresse (SET).

  8. #8
    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
    Sinon, y'a le bon vieux Redefines :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    01  ENTREE.
         05  DONNEE                   PIC X(6)    VALUE "SORTIE".
         05  CPTR  USAGE POINTER.
    01  FILLER    REDEFINES ENTREE.
         05 SORTIE PIC X(1).
         05 FILLER PIC X(4).
    Mais ça n'est pas très dynamique, hein...
    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.

  9. #9
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 130
    Points : 38 543
    Points
    38 543
    Billets dans le blog
    9
    Par défaut
    Bien que les compilateurs cobol acceptent depuis longtemps (avec warning) des redefines sur des zones de longueurs différentes, il est préférable d'utiliser des redefines avec des longueurs identiques, surtout si on utilise des pointeurs.

    Un pointeur est défini sur 4 octets binaires soit une zone "01 entrée" de 10 octets

    Quoiqu'il en soit, un redefines ne permet pas non plus d'obtenir le nom de la donnée

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

    En l'absence de solution utilisant les pointeurs, il reste la vieille technique des tableaux ou celle des s/programmes, voir cette discussion : http://www.developpez.net/forums/d12...ogramme-cobol/

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Tout d'abord, merci de vos réponses

    Au final, nous avons opté pour les EVALUATE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    EVALUATE TAB
       WHEN "SORTIE"
          MOVE "S" TO SORTIE
       WHEN ....

  12. #12
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    1 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 473
    Points : 3 283
    Points
    3 283
    Par défaut
    Citation Envoyé par Lagmare Voir le message
    ...
    Au final, nous avons opté pour les EVALUATE :
    Tant mieux pour toi si ça marche, et c'est bien l'essentiel, car je suis comme escartefigue, je n'ai absolument rien compris à ce que tu voulais faire ...

    Si c'est valoriser une zone en fonction du contenu d'une autre et passer par des tests, ça me semble plutôt une bonne idée en effet ...

    Je ne vois pas le rapport avec les pointeurs, mais bon quelque chose doit m'échapper sans doute ...

  13. #13
    Expert éminent sénior
    Homme Profil pro
    Ingénieur d'Etude Mainframe/AS400
    Inscrit en
    Novembre 2012
    Messages
    1 765
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'Etude Mainframe/AS400
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2012
    Messages : 1 765
    Points : 10 748
    Points
    10 748
    Par défaut
    J'avoue que la solution finale me laisse également perplexe quant à la problématique initiale. Mais bon, du moment que la solution convienne ...

Discussions similaires

  1. Utilisation d'un pointeur cobol
    Par TSalm dans le forum Cobol
    Réponses: 2
    Dernier message: 03/06/2011, 23h30
  2. Pointeur vers un tableau
    Par Nikos dans le forum C
    Réponses: 3
    Dernier message: 09/12/2002, 00h43
  3. [Turbo Pascal] Allocation et désallocation de pointeurs dans une fonction
    Par neird dans le forum Turbo Pascal
    Réponses: 13
    Dernier message: 17/11/2002, 20h14
  4. djgpp et pointeurs far -2
    Par elvivo dans le forum Autres éditeurs
    Réponses: 16
    Dernier message: 29/07/2002, 22h43
  5. djgpp et pointeurs far
    Par elvivo dans le forum C
    Réponses: 2
    Dernier message: 13/07/2002, 00h44

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