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 :
J'ai en fait un problème sur cette ligne-ci :
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.
Voici le message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part COMPUTE AGE-USER = ( DATE-A - DATE-B(5:8) )
Je cherche depuis pas mal de temps mais sans succès, auriez-vous une idée ?34-S Operand DATE-B should be numeric
Merci d'avance pour votre aide.
beegees
Partager