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 :

Comment écrire un littéral sur plusieurs lignes ?


Sujet :

Cobol

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 278
    Points : 132
    Points
    132
    Par défaut Comment écrire un littéral sur plusieurs lignes ?
    Yop

    A les display et les retours à la ligne, un grand classique me direz vous?
    Voila mon ptit soucis, je dois faire dans mon display, une longue tirade shaekspearienne (ou presque) , destiné à alimenter un fichier en sortie (donc la déclaration est faite dans les regles de l'art, quoique ) donc comment gerer le retour à la ligne

    j'ai essayé
    1) Valable en COBOL II je crois, avec le tiret en colonne 7
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      DISPLAY 'BLABLABLABLA
    -                  'BLIBLIBLIBLI'

    Ca marche pas

    2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      DISPLAY 'BLABLABLABLA'
                      'BLIBLIBLIBLI'
    Ca marche pas

    3) 2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      MOVE 'BLABLABLABLA' TO MON_FICHIER_DE_SORTIE(Positon: longueur1)
                     MOVE  'BLIBLIBLIBLI'  TO MON_FICHIER_DE_SORTIE(Positon + longueur 1: longueur)
    J'ai chercher sur les tutos classiques trouvés sur ce site grace aux boss qui conseillent, mais j'ai pas trouvé!

    Merci donc aux cobolisateurs généreux de savoir et autres fans du Short Range Committee...

    @+

    ted (qui demande qu'à apprendre sur ce language qui arrache )

  2. #2
    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 ted the Ors
    Yop

    A les display et les retours à la ligne, un grand classique me direz vous?
    Voila mon ptit soucis, je dois faire dans mon display, une longue tirade shaekspearienne (ou presque) , destiné à alimenter un fichier en sortie (donc la déclaration est faite dans les regles de l'art, quoique ) donc comment gerer le retour à la ligne
    ...
    Je ne comprends pas très bien ta question ...
    L'instruction DISPLAY est destinée à alimenter la sortie standard de ton programme (en Batch c'est le fichier SYSOUT de longueur 133) et si tu veux écrire deux lignes, il te suffit de coder :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DISPLAY 'Ligne 1'
    DISPLAY 'Ligne 2'
    Mais est ce bien cela ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 278
    Points : 132
    Points
    132
    Par défaut
    Yop

    Ouuupppss, en fait je parlais d'un MOVE qui contient du litteral...Désolé, vraiment!

    Merci quand meme pour le réponse, ca peut tjs servir!

    @+

    ted

  4. #4
    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 ted the Ors
    Yop

    Ouuupppss, en fait je parlais d'un MOVE qui contient du litteral...Désolé, vraiment!

    Merci quand meme pour le réponse, ca peut tjs servir!

    @+

    ted
    Quelle est la question alors ?

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 278
    Points : 132
    Points
    132
    Par défaut
    Ben comment faire le move d'un litteral qui necessite plus d'une ligne pour s'ecrire...
    Comment ecrire un litteral sur plusieurs lignes? Quel est le caractere de retour à la ligne quoi? !

    Merci

    à+

    ted

  6. #6
    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 ted the Ors
    Ben comment faire le move d'un litteral qui necessite plus d'une ligne pour s'ecrire...
    Comment ecrire un litteral sur plusieurs lignes? Quel est le caractere de retour à la ligne quoi? !

    Merci

    à+

    ted
    Comme ceci peut être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    MOVE 'Première ligne' TO LIGNE-SORTIE
    WRITE LIGNE-SORTIE
    MOVE 'Deuxieme ligne' TO LIGNE-SORTIE
    WRITE LIGNE-SORTIE

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 278
    Points : 132
    Points
    132
    Par défaut
    Non, en fait, le texte a inscrire est sur une seule ligne, cependant, dans le code, le texte est long, et j'aimerais pouvoir faire un retour à la ligne dans le litteral de l'instruction move...

    Cf le premier post (en remplacant les display par des moves)

    @+

    ted

  8. #8
    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 ted the Ors
    Non, en fait, le texte a inscrire est sur une seule ligne, cependant, dans le code, le texte est long, et j'aimerais pouvoir faire un retour à la ligne dans le litteral de l'instruction move...

    Cf le premier post (en remplacant les display par des moves)

    @+

    ted
    Ton fichier de sortie il est destiné à aller où ?
    Le concept de "retour à la ligne" c'est par rapport à quoi ?

    COBOL, issu du monde du Mainframe, est pour moi mal adapté à gérer les fichiers texte (typiquement du MS-DOS avec CR/LF). En COBOL, on parle plutôt d'enregistrements en format fixe ou variable ...

    Sinon tu peux toujours insérer au milieux de ton littéral les caractères spéciaux "retour à la ligne" ... Mais ça fait bizarre je trouve ...

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 278
    Points : 132
    Points
    132
    Par défaut
    Citation Envoyé par Luc Orient
    Ton fichier de sortie il est destiné à aller où ?
    Le concept de "retour à la ligne" c'est par rapport à quoi ?

    COBOL, issu du monde du Mainframe, est pour moi mal adapté à gérer les fichiers texte (typiquement du MS-DOS avec CR/LF). En COBOL, on parle plutôt d'enregistrements en format fixe ou variable ...

    Sinon tu peux toujours insérer au milieux de ton littéral les caractères spéciaux "retour à la ligne" ... Mais ça fait bizarre je trouve ...
    Alors le fichier de sortie, c'est un fichier de 200 de long, format fixe, et il est destiné à renseigner l'utilisateurs sur les anomalies du traitement fait par le programme!
    Ainsi, si il y a une anomalies, le fichier d'anomalies en sortie est alimenté avec la donnée qui pose probleme et un libéllé de l'anomalie...

    Mon probleme: le libellé, que je mets ds le fichier de sortie à l'aide d'un MOVE necessite, dans le code cobol d'etre ecrit sur plusieurs lignes (il est long)...
    Et je n'arrive pas à faire un retour à la ligne dans mon litteral...

    Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MOVE 'mon litteral est long et il prend plus de 80 caracteres de long
     quand je l'ecris entre ' donc j'ai beson de retourner à la ligne
    et je sais pas comment on code ce retour à la ligne ' TO mon_fichier_d_anomalie
    Attention je parle de retour à la ligne dans le code, pas d'un retour à la ligne dans le fichier de sortie....

    J'espere avoir été plus clair!

    @+

    ted

  10. #10
    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
    C'est effectivement un problème de continuation de ligne finalement ...
    Vois donc cela :
    http://publibz.boulder.ibm.com/cgi-b...3611#HDRCONLIN
    C'est un peu compliqué mais il y a un exemple ...

    Une autre solution que je préfère personnellement est de passer par une variable intermédiaire, comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    1 LIBELLE-TRES-LONG.
      2 FILLER PIC X(..) VALUE
        'aaaaaaaaaaaaaaaa'.
      2 FILLER PIC X(..) VALUE
        'bbbbbbbbbbbbbbbb'.
    .. etc ...
    
    MOVE LIBELLE-TRES-LONG TO ...

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 278
    Points : 132
    Points
    132
    Par défaut
    Parfait, c'est tout à fait ce que je voulais...

    Pour le lien, je crois pas que les méthodes proposés fonctionne en cobol 74 maisj 'essaierai...

    Quand à votre technique, elle est vraiment très "propre"...

    Merci encore!

    @+

    ted

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

Discussions similaires

  1. Comment écrire une ligne de code très longue sur plusieurs lignes
    Par Vincent32 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 06/11/2018, 09h28
  2. Réponses: 3
    Dernier message: 02/03/2012, 14h22
  3. Comment écrire la commande d'un job sur plusieurs lignes ?
    Par clementratel dans le forum Microsoft BI
    Réponses: 4
    Dernier message: 10/11/2008, 17h02
  4. comment écrire une équation sur plusieurs lignes?
    Par nunuss35 dans le forum Mathématiques - Sciences
    Réponses: 7
    Dernier message: 29/09/2008, 18h07
  5. Réponses: 2
    Dernier message: 22/06/2007, 09h26

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