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 :

Remplir un fichier txt à l'aide d'un tableau


Sujet :

Cobol

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut Remplir un fichier txt à l'aide d'un tableau
    Bonjour tout le monde,

    J'ai un tableau que voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
          *TABLEAU
            01 TABLEAU.
          *les lignes du tableau
              03 TA1 OCCURS 4 TIMES.
          *les colonnes
              04 TA2 PIC 99V.99 OCCURS 3 TIMES.
    Le tableau est alimenté par des accept :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
                  PERFORM VARYING I FROM 1 BY 1 UNTIL I > 4
               DISPLAY "Pour le trismetre " I " :"
               PERFORM VARYING J FROM 1 BY 1 UNTIL J > 3
                   ACCEPT TA2(I,J)
                   DISPLAY "Eleve N " J ":" TA2(I,J)
                   MOVE TA2(I,J) TO CHIFR
              END-PERFORM
               DISPLAY SPACES
           END-PERFORM.
    le fichier FICH2008INPUT qui est vide correspond à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                   SELECT FICH2008INPUT ASSIGN "TableauInput.txt"
                   ORGANIZATION IS LINE SEQUENTIAL
                   ACCESS MODE IS SEQUENTIAL.
    J'aimerais envoyer chaque lignes du tableau vers ce fichier

    à chaque fin de ligne, un interligne (genre DISPLAY SPACES).

    Sauriez-vous m'aider car ceci :

    ne fonctionne pas

    J'obtiens ce message d'erreur :

    Not a record name
    Voici l'entierté de mon code :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
                  PROGRAM-ID. 01-TAB-2DIM.
           ENVIRONMENT DIVISION.
           DATA DIVISION.
           WORKING-STORAGE SECTION.
           01 COTATION-EXA.
              02 TRIMESTRE OCCURS 4 TIMES.
                 03 NOTE-ELEVE PIC 99V99 OCCURS 3 TIMES.
           01 ZONE-INDICES.
          * Avec T pour les Trimestres et E pour les élèves
           02 T PIC 99.
           02 E PIC 99.
    
          * A pour Attente Clavier
           77 A PIC X.
    
          * Note éditée à l'écran
           77 NOTELEV PIC 99V,99.
    
           SCREEN SECTION.
           01 SCR.
              02 BLANK SCREEN.
    
           PROCEDURE DIVISION.
           PAR.
          * Encodage des notes de 3 élèves pour les 4 trimestres
               MOVE 1 TO T.
               PERFORM INTRO-TAB THRU INTRO-TAB-FIN UNTIL T > 4.
               ACCEPT A.
               DISPLAY SCR.
    
          * Affichage des résultats des élèves par trimestre
               MOVE 1 TO T.
               PERFORM DISP-TAB-TRIM THRU DISP-TAB-TRIM-FIN UNTIL T > 4.
               ACCEPT A.
               DISPLAY SCR.
    
          * Affichage des résultats des élèves par élèves
               MOVE 1 TO E.
               PERFORM DISP-TAB-EL THRU DISP-TAB-EL-FIN UNTIL E > 3.
    
          *    Ne pas oublier de mettre STOP RUN, sinon le programme
          *    continue et va mettre des valeurs aux indices en dehors
          *    de ceux permis par la création de la table.
               STOP RUN.
    
           INTRO-TAB.
               DISPLAY SPACES.
               DISPLAY 'ENCODAGE DES NOTES DU TRIMESTRE (xx.xx) ' T .
               MOVE 1 TO E.
               PERFORM UNTIL E > 3
                  DISPLAY "Eleve N " E " : " WITH NO ADVANCING
                  ACCEPT NOTE-ELEVE(T,E)
                  ADD 1 TO E
               END-PERFORM.
               ADD 1 TO T.
           INTRO-TAB-FIN.
    
          * Affichage par TRIMESTRE
           DISP-TAB-TRIM.
               MOVE 1 TO E.
               DISPLAY SPACES.
               DISPLAY 'Pour le Trimestre ' T.
               DISPLAY '********************* '.
               PERFORM UNTIL E > 3
                  MOVE NOTE-ELEVE(T,E) TO NOTELEV
                  DISPLAY 'Eleves  ' E ' a : ' NOTELEV
                  ADD 1 TO E
               END-PERFORM.
               ADD 1 TO T.
           DISP-TAB-TRIM-FIN.
    
          * Affichage par ELEVE
           DISP-TAB-EL.
               MOVE 1 TO T.
               DISPLAY SPACES.
               DISPLAY 'L''Eleve ' E.
               DISPLAY '***********'.
               PERFORM UNTIL T > 4
                  MOVE NOTE-ELEVE(T,E) TO NOTELEV
                  DISPLAY 'Trimestre ' T ' : ' NOTELEV
                  ADD 1 TO T
               END-PERFORM.
               ADD 1 TO E.
           DISP-TAB-EL-FIN.
    Merci d'avance pour votre aide.

    beegees

  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 beegees.

    Pour que tu puisses écrire dans un fichier :
    - il faut que le fichier soit ouvert en OUTPUT.
    - il faut remplir le buffer du fichier avant de l'écrire
    - coder le WRITE en utilisant le nom du format du fichier (le niveau 01 codé juste après le FD du fichier).

    Ce qui donne grosso modo ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
               OPEN OUTPUT FICHIER2008.
               MOVE TA1(I) TO STRUCTURE 
               WRITE STRUCTURE.
          * ou WRITE STRUCTURE FROM TA1(I) à la place du MOVE et WRITE

  3. #3
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par Hédhili Jaïdane Voir le message
    Bonjour beegees.

    Pour que tu puisses écrire dans un fichier :
    - il faut que le fichier soit ouvert en OUTPUT.
    - il faut remplir le buffer du fichier avant de l'écrire
    - coder le WRITE en utilisant le nom du format du fichier (le niveau 01 codé juste après le FD du fichier).

    Ce qui donne grosso modo ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
               OPEN OUTPUT FICHIER2008.
               MOVE TA1(I) TO STRUCTURE 
               WRITE STRUCTURE.
          * ou WRITE STRUCTURE FROM TA1(I) à la place du MOVE et WRITE
    Bonjour Hédhili Jaïdane,

    Un tout grand merci pour ton aide vraiment très précieuse.

    J'ai suivi tes conseils :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OPEN OUTPUT FICHIER2008.
    Ce qui donne dans mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OPEN OUTPUT FICH2008INPUT.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MOVE TA1(I) TO STRUCTURE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
           PERFORM VARYING I FROM 1 BY 1 UNTIL I > 4
               DISPLAY "Pour le trismetre " I " :"
               PERFORM VARYING J FROM 1 BY 1 UNTIL J > 3
                   ACCEPT TA2(I,J)
                   DISPLAY "Eleve N " J ":" TA2(I,J)
                   MOVE TA1(I) TO STRUCTURE
              END-PERFORM
               DISPLAY SPACES
           END-PERFORM.
    et WRITE STRUCTURE.

    C'est déjà mieux mais il n'écrit que la dernière ligne encodée.

    Le problème doit venir d'ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
             01 STRUCTURE.
                02 TAB-FICH.
          *Permet de savoir si on est à la fin du fichier
                     88 FIN-FICH   VALUE HIGH-VALUES.
                            03 CHIFR.
                         04 C PIC 99V.99 OCCURS 3 TIMES.
    Je me demande si le 88 est utile ?

    Edit :

    Je viens de changer la structure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
           DATA DIVISION.
           FILE SECTION.
           FD FICH2008INPUT.
             01 STRUCTURE.
                02 TAB-FICH.
                     03 LIGNE OCCURS 4 TIMES.
                      04 CHIFR.
                         05 C PIC 99V.99 OCCURS 3 TIMES.
    J'ai aussi changé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        PERFORM VARYING I FROM 1 BY 1 UNTIL I > 4
               DISPLAY "Pour le trismetre " I " :"
               PERFORM VARYING J FROM 1 BY 1 UNTIL J > 3
                   ACCEPT TA2(I,J)
                   DISPLAY "Eleve N " J ": " TA2(I,J)
                   MOVE TA1(I) TO LIGNE(I)
              END-PERFORM
               DISPLAY SPACES
           END-PERFORM.

    Merci d'avance pour ton aide.

    beegees

  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
    Le 88 est inutile dans ce cas d'espèce.

    Le move et le write doivent être dans le perform I et en dehors du perform J. Si tu veux une ligne vide dans ton fichier, tu dois faire un move spaces to structure et l'écrire par write.

    Nettoie ton code en entier et remets dans le fil, on va le finir ensemble.

  5. #5
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par Hédhili Jaïdane Voir le message
    Le 88 est inutile dans ce cas d'espèce.

    Le move et le write doivent être dans le perform I et en dehors du perform J. Si tu veux une ligne vide dans ton fichier, tu dois faire un move spaces to structure et l'écrire par write.

    Nettoie ton code en entier et remets dans le fil, on va le finir ensemble.
    Re,

    Voilà j'ai nettoyé mon code, j'ai suivi tes conseils.

    Pour l'instant ça donne ceci :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
           IDENTIFICATION DIVISION.
           PROGRAM-ID. ExamenCobol2eSession.
           ENVIRONMENT DIVISION.
           CONFIGURATION SECTION.
           SPECIAL-NAMES.
               DECIMAL-POINT IS COMMA.
    
           INPUT-OUTPUT SECTION.
           FILE-CONTROL.
    
          *AssignATION NOM PHYSIQUE - NOM LOGIQUE
                   SELECT FICH2008INPUT ASSIGN "TableauInput.txt"
                   ORGANIZATION IS LINE SEQUENTIAL
                   ACCESS MODE IS SEQUENTIAL.
    
           DATA DIVISION.
           FILE SECTION.
           FD FICH2008INPUT.
             01 STRUCTURE.
                02 TAB-FICH.
                     03 LIGNE OCCURS 4 TIMES.
                      04 CHIFR.
                         05 C PIC 99V.99 OCCURS 3 TIMES.
    
           WORKING-STORAGE SECTION.
          *TABLEAU
            01 TABLEAU.
          *les lignes du tableau
              03 TA1 OCCURS 4 TIMES.
          *les colonnes
              04 TA2 PIC 99V.99 OCCURS 3 TIMES.
    
           77 I PIC 99.
           77 J PIC 99.
           77 PAUSE PIC X.
           77 LIGNES PIC 9 VALUE 0.
    
           SCREEN SECTION.
           01 CLS.
               02 blank screen.
    
    
           PROCEDURE DIVISION.
    
           OPEN OUTPUT FICH2008INPUT.
    
           PERFORM ENCODAGE-COTE.
    
           ENCODAGE-COTE.
                  PERFORM VARYING I FROM 1 BY 1 UNTIL I > 4
               DISPLAY "Pour le trismetre " I " :"
               PERFORM VARYING J FROM 1 BY 1 UNTIL J > 3
                   ACCEPT TA2(I,J)
                   DISPLAY "Eleve N " J ": " TA2(I,J)
              END-PERFORM
              MOVE TA1(I) TO STRUCTURE
              MOVE SPACES TO STRUCTURE
              WRITE STRUCTURE
              DISPLAY SPACES
           END-PERFORM.
    
    
    
    
           DISPLAY "VEUILLEZ SVP APPUYEZ SUR UNE TOUCHE POUR CONTINUER...".
           ACCEPT PAUSE.
           DISPLAY CLS.
    
           PERFORM VARYING I FROM 1 BY 1 UNTIL I > 3
               DISPLAY "Eleve numero " I " :"
               PERFORM VARYING J FROM 1 BY 1 UNTIL J > 4
                   DISPLAY "Trimestre n°" J " : " TA2(J,I)
               END-PERFORM
               DISPLAY SPACES
           END-PERFORM.
    
          **************FIN DU CODE DE L'AFFICHAGE A L'ECRAN****************
    Tu verras que j'ai remis MOVE TA1(I) TO STRUCTURE...

    Merci pour l'aide.

    beegees

  6. #6
    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
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
           IDENTIFICATION DIVISION.
           PROGRAM-ID. ExamenCobol2eSession.
           ENVIRONMENT DIVISION.
           CONFIGURATION SECTION.
           SPECIAL-NAMES.
               DECIMAL-POINT IS COMMA.
           INPUT-OUTPUT SECTION.
           FILE-CONTROL.
          *AssignATION NOM PHYSIQUE - NOM LOGIQUE
                   SELECT FICH2008OUPUT ASSIGN "TableauOutput.txt"
                             ORGANIZATION IS LINE SEQUENTIAL
                             ACCESS MODE IS SEQUENTIAL.
           DATA DIVISION.
           FILE SECTION.
           FD  FICH2008OUTPUT.
           01  ENR-FICH2008.
                02 TAB-FICH.
                     05 C PIC 99V99 OCCURS 3 TIMES.
           WORKING-STORAGE SECTION.
          *TABLEAU
            01  TABLEAU.
          *les lignes du tableau
                03 TA1 OCCURS 4 TIMES.
          *les colonnes
                    04 TA2 PIC 99V99 OCCURS 3 TIMES.
     
           77  I PIC 99.
           77  J PIC 99.
           77  PAUSE PIC X.
           77  LIGNES PIC 9 VALUE 0.
           77  WNOTE PIC X(5).
           SCREEN SECTION.
           01  CLS.
                02 blank screen.
           PROCEDURE DIVISION.
                 OPEN OUTPUT FICH2008OUTPUT.
                 PERFORM VARYING I FROM 1 BY 1 UNTIL I > 4
                       DISPLAY "Pour le trismetre " I " :"
                       PERFORM VARYING J FROM 1 BY 1 UNTIL J > 3
                             DISPLAY "Donner Note Elève N° " J ": " TA2(I,J)
                             ACCEPT WNOTE
                             COMPUTE TA2(I,J) = FUNCTION NUMVAL(WNOTE)
                       END-PERFORM
                       MOVE TA1(I) TO ENR-FICHIER2008
                       WRITE ENR-FICHIER2008
                       MOVE SPACES TO ENR-FICHIER2008
                       WRITE ENR-FICHIER2008
                END-PERFORM
    .../...
                       CLOSE FICHIER2008OUTPUT.
    Sans test, donc à vérifier.
    La fonction NUMVAL te permet de faire une saisie en format libre avec virgule et de cadrer la saisie selon l'image du nombre voulu. Par exemple 9,5 et 09,50 donneront la même chose pour un nombre 99V99.
    Le 2è WRITE permet d'avoir une ligne vide dans le fichier en sortie après chaque ensemble de 3 notes, chose qu'on ne fait pas pour un fichier disque à moins qu'il ne soit destiné à être imprimé directement.

    Si tu veux relire le fichier, tu l'ouvres en INPUT et tu DISPLAY les lignes comme tu le faisais dans certains de tes programmes précédents.

  7. #7
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Re,

    Un tout grand merci à toi pour le temps que tu as consacré pour faire ce code.

    ça à l'air de donné vraiment bien, franchement, tu es très fort

    Je vais me permettre de ne pas mettre le tag "Resolu" car demain matin je vais revoir tout cela en détail et ensuite si tout ce passe bien je mettre le tag "Résolu".

    Encore merci à toi et bonne soirée.

    beegees

  8. #8
    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
    RECTIF :

    Je n'ai pas très bien vérifié la structure de ton fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    FD  FICH2008OUTPUT.
           01  ENR-FICH2008.
                02 TAB-FICH.
                     05 C PIC 99V99 OCCURS 3 TIMES.

  9. #9
    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
    Citation Envoyé par beegees Voir le message
    ...Re,
    ça à l'air de donné vraiment bien, franchement, tu es très fort
    ....
    beegees
    Arrête de dire n'importe quoi. Aligner 3 instructions Cobol ???

  10. #10
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par Hédhili Jaïdane Voir le message
    RECTIF :

    Je n'ai pas très bien vérifié la structure de ton fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    FD  FICH2008OUTPUT.
           01  ENR-FICH2008.
                02 TAB-FICH.
                     05 C PIC 99V99 OCCURS 3 TIMES.
    Salut Hédhili Jaïdane,

    Merci pour la rectification.

    ça fonctionne bien comment tu me le proposes, merci.

    Je vais maintenant analyser ton code et je reviens te dire quoi.

    Encore merci pour tout.

    beegees

  11. #11
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par Hédhili Jaïdane Voir le message
    Arrête de dire n'importe quoi. Aligner 3 instructions Cobol ???
    Aligner 3 lignes COBOL + toutes l'aide que tu m'as déjà donné avant.

    Aucun doute, tu es le de ce forum.

    La seule chose que je ne comprends pas, c'est pourquoi on utilise COMPUTE ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    COMPUTE TA2(I,J) = FUNCTION NUMVAL(WNOTE)
    Edit : Si je veux utiliser la méthode normale (sans NUMVAL car pas vue au cours ) ça ce passe comment ?

    Merci encore pour ton aide.

    beegees

  12. #12
    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
    Citation Envoyé par beegees Voir le message
    ...
    La seule chose que je ne comprends pas, c'est pourquoi on utilise COMPUTE ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    COMPUTE TA2(I,J) = FUNCTION NUMVAL(WNOTE)
    Certains compilateurs ne peuvent utiliser certaines fonctions numériques que dans une expression évaluée par COMPUTE.
    Edit : Si je veux utiliser la méthode normale (sans NUMVAL car pas vue au cours ) ça ce passe comment ?
    Comme tu l'as fait :

  13. #13
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour Hédhili Jaïdane,

    Désolé pour le retard de ma réponse, j'ai été très occupé aujourd'hui avec autre chose.

    Un tout grand merci pour ta réponse qui clarifie pas mal de points.

    J'ai modifié la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    COMPUTE TA2(I,J) = FUNCTION NUMVAL(WNOTE)
    qui est devenue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                   MOVE FUNCTION NUMVAL(WNOTE)TO TA2(I,J)
    ça donne le même résultat est c'est plus proche de ce que j'ai fait jusque maintenant.

    Merci encore pour tout.

    beegees

  14. #14
    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
    Ecrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    COMPUTE TA2(I,J) = FUNCTION NUMVAL(WNOTE)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     MOVE FUNCTION NUMVAL(WNOTE)TO TA2(I,J)
    C'est la même chose, sauf que certains compilateurs exigent la première codif.

    Addendum:

    Quand on utilise la fonction NUMVAL (ou NUMVAL-C) avec DECIMAL IS COMMA dans SPECIAL-NAMES, la saisie doit se faire avec la virgule "," et non le point "." pour indiquer la position du point décimal.

  15. #15
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Super.

    Je peux mettre le tag

    Franchement, tu m'as vraiment aidé à sortir d'un problème ennuyeux.

    Je t'en remercie encore et je te souhaite une bonne soirée.

    beegees

  16. #16
    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
    Citation Envoyé par beegees Voir le message
    Super.

    Je peux mettre le tag

    Franchement, tu m'as vraiment aidé à sortir d'un problème ennuyeux.

    Je t'en remercie encore et je te souhaite une bonne soirée.

    beegees

    OK. Bonne continuation et heureux d'avoir pu t'aider. Tous les membres de DVP seront toujours là pour t'aider toi et les autres.

    A++

  17. #17
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par Hédhili Jaïdane Voir le message
    OK. Bonne continuation et heureux d'avoir pu t'aider. Tous les membres de DVP seront toujours là pour t'aider toi et les autres.

    A++
    Salut Hédhili Jaïdane,

    Voilà, mon examen de COBOL de seconde session s'est passé jeudi dernier à 18h00.

    Verdict --> 100%

    Je tiens par ce message à te remercier sincèrement pour l'aide que tu m'as apporté.

    Cette aide a été pour moi cruciale.

    Grâce mon examen de 2e session, j'ai appris à apprécier COBOL, appréciation que j'avais perdu en juin lors de mon examen de 1ère session.

    Encore un grand merci pour tout et j'espère à bientôt.

    beegees

  18. #18
    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
    Citation Envoyé par beegees Voir le message
    Salut Hédhili Jaïdane,

    Voilà, mon examen de COBOL de seconde session s'est passé jeudi dernier à 18h00.

    Verdict --> 100%

    Je tiens par ce message à te remercier sincèrement pour l'aide que tu m'as apporté.

    Cette aide a été pour moi cruciale.

    Grâce mon examen de 2e session, j'ai appris à apprécier COBOL, appréciation que j'avais perdu en juin lors de mon examen de 1ère session.

    Encore un grand merci pour tout et j'espère à bientôt.

    beegees
    Salut à toi travailleur acharné.
    Toutes mes félicitations
    Tes remerciements me vont droit au coeur et doivent aller aussi à tout le monde. Bravo et m.... pour la suite.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/04/2013, 09h44
  2. Filtrer un fichier XML à l'aide d'un tableau
    Par LaBastoss dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 26/05/2011, 18h11
  3. Génération de fichiers Txt à l'aide d'une requête
    Par mourad.ardouz dans le forum VBA Access
    Réponses: 1
    Dernier message: 01/02/2011, 12h32
  4. remplir un fichier .txt en sortie
    Par Nikolai dans le forum C++
    Réponses: 2
    Dernier message: 01/09/2009, 12h28
  5. Réponses: 5
    Dernier message: 20/06/2007, 12h22

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