Bonjour tout le monde,

J'ai un programme qui coince

Il doit lire les lignes d'un fichier txt et calculer la date de naissance de chacune des personnes :

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
       IDENTIFICATION DIVISION.
       PROGRAM-ID. FICHIER-AGE.
       AUTHOR. JEAN.
       DATE-WRITTEN. 10/05/3008.
       DATE-COMPILED. 10/05/3008.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.

           SELECT AGE ASSIGN "FICHIER-AGE.TXT"
               ORGANIZATION IS LINE SEQUENTIAL
               ACCESS MODE IS SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD AGE.
       01 PERSONNE.
           88 FIN-AGE VALUE HIGH-VALUES.
           02 NOM PIC X(10).
           02 PRENOM PIC X(10).
           02 DATE-N.
               03 ANNEE PIC 9(4).
               03 MOIS PIC 9(2).
               03 JOUR PIC 9(2).
           02 COTE-COBOL PIC 9(3).
           02 COTE-ACCESS PIC 9(3).

       WORKING-STORAGE SECTION.

       77 DATE-AUJ PIC X(8).
       77 DATE-A PIC 9(4).
       77 DATE-B PIC 9(8).
       77 DATE-BBis PIC 9(4).
       77 AGE-USER PIC 9(2).
       PROCEDURE DIVISION.

           MOVE FUNCTION CURRENT-DATE TO DATE-AUJ.
           MOVE DATE-AUJ(1:4) TO DATE-A.
           OPEN INPUT AGE.

          PERFORM UNTIL FIN-AGE

          DISPLAY NOM " " PRENOM " " AGE-USER " " COTE-COBOL " "
          COTE-ACCESS
             READ AGE
                 AT END SET FIN-AGE TO TRUE
              END-READ

          MOVE DATE-N TO DATE-B
      *   MOVE DATE-B(5:8) TO DATE-BBis
          COMPUTE AGE-USER = ( DATE-A - DATE-B(5:8) )


          END-PERFORM

           CLOSE AGE.




           STOP RUN.
J'ai en fait un problème sur cette ligne-ci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
COMPUTE AGE-USER = ( DATE-A - DATE-B(5:8) )
Voici le message d'erreur :

34-S Operand DATE-B should be numeric
Je cherche depuis pas mal de temps mais sans succès, auriez-vous une idée ?

Merci d'avance pour votre aide.

beegees