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 :

[GnuCOBOL] Afficher une ligne vide dans la console


Sujet :

Cobol

  1. #1
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 260
    Billets dans le blog
    10
    Par défaut [GnuCOBOL] Afficher une ligne vide dans la console
    Bonjour tout le monde.

    J'apprends le COBOL. Je ne trouve pas comment sauter une ligne dans la console.

    Je pensais faire comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
          * display1.cob
           IDENTIFICATION DIVISION.
           PROGRAM-ID. Exemple.
           
           PROCEDURE DIVISION.
               DISPLAY 'bla'
               DISPLAY ''
               DISPLAY 'bla'
               STOP RUN.
    Mais à la compilation j'obtiens cet avertissement :

    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    cobc -x --Wall display1.cob
    display1.cob:7: avertissement*: le littéral alphanumérique a une longueur nulle; une ESPACE est supposée [-Wothers]
        5 |        PROCEDURE DIVISION.
        6 |            DISPLAY 'bla'
        7 >            DISPLAY ''

    Et effectivement dans la sortie il y a une espace, ce que je ne veux pas.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  2. #2
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    7 569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 7 569
    Par défaut
    Salut à tous.

    Cela belle lurette que je ne programme plus en cobol.

    Pour faire un saut de ligne, il faut utiliser les caractères ASCII correspondant au Carriage Return (CR) et Line Feed (LF), soit :
    --> CR = 0x0D (13 en décimal).
    --> LF = 0x0A (10 en décimal).

    D'où la nécessite de faire cette déclaration dans la Working-Storage Section pour formaliser tes affichages, même avec un display.

  3. #3
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 260
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par Artemus24 Voir le message
    Pour faire un saut de ligne, il faut utiliser les caractères ASCII correspondant au Carriage Return (CR) et Line Feed (LF), soit :
    --> CR = 0x0D (13 en décimal).
    --> LF = 0x0A (10 en décimal).
    Merci ! Effectivement, c'est bien le principe de la solution sur laquelle j'ai fini par tomber, à force de (mal) chercher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
          * display2.cob
           IDENTIFICATION DIVISION.
           PROGRAM-ID. Exemple.
           
           PROCEDURE DIVISION.
               DISPLAY 'bla' X'0A'
          *    DISPLAY ''
               DISPLAY 'bla'
               STOP RUN.
    Citation Envoyé par Artemus24 Voir le message
    D'où la nécessite de faire cette déclaration dans la Working-Storage Section pour formaliser tes affichages, même avec un display.
    D'accord. Je vais creuser ça.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  4. #4
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    7 569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 7 569
    Par défaut
    Tu parles d'une console, mais c'est quoi au juste ?
    Et en quoi afficher un espace ne te convient pas ?

  5. #5
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 260
    Billets dans le blog
    10
    Par défaut
    J'ai un programme que je lance depuis un terminal (ou une console), sous Linux, qui affiche des choses dans la sortie standard. Éventuellement je redirige la sortie vers un fichier. Et donc à un moment donné je veux sauter une ligne, et c'est dérangeant de ne pas y arriver.

    Je ne sais pas pourquoi GnuCOBOL transforme une chaîne vide en espace. Il doit y avoir une raison...

    Mais quoiqu'il en soit avec les valeurs hexadécimales ça fonctionne.

    Voici ce que j'ai fait (en tenant compte de ta remarque sur la déclaration dans la section Working-Storage) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
          * display4.cob
           IDENTIFICATION DIVISION.
           PROGRAM-ID. Exemple.
           DATA DIVISION.
           FILE SECTION.
           WORKING-STORAGE SECTION.
           01 WS-BLA PIC X(3) VALUE 'bla'.
           01 WS-LF PIC X VALUE X'0A'.
           PROCEDURE DIVISION.
           MAIN-PROCEDURE.
               DISPLAY WS-BLA WS-LF.
               DISPLAY WS-BLA WS-LF.
               STOP RUN.
           END PROGRAM Exemple.
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ cobc -x -j display4.cob
    bla
    
    bla
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

Discussions similaires

  1. Afficher une ligne vide dans un TCD (mise à zéro de l'affichage)
    Par jfs1980 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 18/02/2019, 14h22
  2. Afficher les lignes vides dans une requete
    Par Mattorre dans le forum Langage SQL
    Réponses: 4
    Dernier message: 26/07/2010, 14h13
  3. [BO 5.1.4] Afficher une ligne vide?
    Par EmmanuelleC dans le forum Débuter
    Réponses: 2
    Dernier message: 08/07/2008, 12h29
  4. [MDX]Insérer une ligne vide dans un dataset
    Par Reskibil dans le forum SSAS
    Réponses: 0
    Dernier message: 11/06/2008, 15h02
  5. [VBA-E] Inserer une ligne vide dans Excel
    Par monsurf dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/07/2006, 16h48

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