Bonjour à tous ,
je bosse sur un projet sur la vente aux enchères et je rencontre certaines difficultés sur Cobol
d'abord , j'ai voulu créer un fichier test (indéxé) avec les structures suivantes :
fench
d'abord le fichier a une clé primaire (numlot,numach) et je ne sais pas si dans le code on le déclare ainsi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 numlot 9(4) numach 9(4) AEXP A(1) EtatO (1) Montant 9(4) datench X(8)
ayant 2 clés secondaires (numach)
et en compilant ce code , il crée le fichier mais quand je voulais lire ce qui a dedans il affiche des données qui ne correspondent pas à ce que j'ai saisi
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 000100 IDENTIFICATION DIVISION. 000200 PROGRAM-ID. SaisieEnchere. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT FENCH ASSIGN TO "Fench.dat" ORGANIZATION INDEXED ACCESS MODE IS RANDOM RECORD KEY FENCH-CLE ALTERNATE RECORD KEY FENCH-NUMLOT WITH DUPLICATES ALTERNATE RECORD KEY FENCH-NUMACH WITH DUPLICATES. DATA DIVISION. FILE SECTION. FD FENCH. 01 FENCH-TAMP. 03 FENCH-CLE. 05 FENCH-NUMLOT pic 9(4). 05 FENCH-NUMACH pic 9(4). 03 FENCH-AEXP pic A(1). 03 FENCH-ETATO pic A(1). 03 FENCH-MONTANT pic 9(4). 03 FENCH-DATEENCH pic X(8). WORKING-STORAGE SECTION. 77 W-FIN PIC 9(1). 77 W-CHOIX PIC X(1). 77 W-AUTRE PIC X(1). PROCEDURE DIVISION. PRINCIPAL. OPEN OUTPUT FENCH. PERFORM UNTIL W-AUTRE ="N" OR W-AUTRE ="n" PERFORM SAISIE PERFORM VALIDATION END-PERFORM CLOSE FENCH STOP RUN. SAISIE. DISPLAY "Numerot lot(4):" LINE 8 COL 0 WITH BLANK LINE accept FENCH-NUMLOT DISPLAY "Numerot acheteur(4):"LINE 10 COL 0 WITH BLANK LINE accept FENCH-NUMACH DISPLAY "AEXP(O/N):" LINE 12 COL 0 WITH BLANK LINE accept FENCH-AEXP DISPLAY " EtatO(4):" LINE 14 COL 0 WITH BLANK LINE accept FENCH-ETATO DISPLAY "Montant(4)" LINE 16 COL 0 WITH BLANK LINE accept FENCH-MONTANT DISPLAY "Date enchere:" LINE 18 COL 0 WITH BLANK LINE accept FENCH-DATEENCH VALIDATION. DISPLAY "Valider creation (O/N):" LINE 22 COL 0 ACCEPT W-CHOIX IF W-CHOIX = "O" OR W-CHOIX = "o" PERFORM ENREGISTREMENT END-IF DISPLAY "Autre enchere (O/N):" LINE 23 COL 0 ACCEPT W-AUTRE DISPLAY " " WITH BLANK SCREEN ENREGISTREMENT. WRITE FENCH-TAMP
ceci dit comment créer un fichier séquentiel indexé , j'ai aussi voulu créer un fichier séquentiel simple et çà marche , mais quand je voulais créer un qui est indéxé à partir de ce fichier çà ne marche pas
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 000100 IDENTIFICATION DIVISION. 000200 PROGRAM-ID. LireFichier. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. SELECT FENCH ASSIGN TO "Fench.dat" ORGANIZATION INDEXED ACCESS MODE IS RANDOM RECORD KEY FENCH-CLE ALTERNATE RECORD KEY FENCH-NUMLOT WITH DUPLICATES ALTERNATE RECORD KEY FENCH-NUMACH WITH DUPLICATES. DATA DIVISION. FILE SECTION. FD FENCH. 01 FENCH-TAMP. 03 FENCH-CLE. 05 FENCH-NUMLOT pic 9(4). 05 FENCH-NUMACH pic 9(4). 03 FENCH-AEXP pic A(1). 03 FENCH-ETATO pic A(1). 03 FENCH-MONTANT pic 9(4). 03 FENCH-DATEENCH pic X(8). WORKING-STORAGE SECTION. 77 W-CHOIX PIC X(1). 77 W-FIN PIC 9(1). PROCEDURE DIVISION. DEBUT. OPEN INPUT FENCH. MOVE "X" TO W-CHOIX MOVE 0 TO W-FIN READ FENCH AT END MOVE 1 TO W-FIN END-READ *on affiche tant que qu'on n'a pas taper Quitter PERFORM AFFICHENCHERE UNTIL W-CHOIX = "Q" OR W-CHOIX = "q" CLOSE FENCH DISPLAY " " WITH BLANK SCREEN *Pour revenir au menu principal STOP RUN. *affichage etudiant AFFICHENCHERE. MOVE "X" TO W-CHOIX DISPLAY "NUMERO LOT:" LINE 5 COL 2 WITH BLANK SCREEN DISPLAY "Numero acheteur:" LINE 8 COL 2 DISPLAY "AEXP(O/N):" LINE 10 COL 2 DISPLAY "EtatO(4):" LINE 12 COL 2 DISPLAY "Montant(4)" LINE 14 COL 2 DISPLAY "Date enchere:" LINE 16 COL 2 DISPLAY FENCH-NUMLOT LINE 5 COL 16 DISPLAY FENCH-NUMACH LINE 8 COL 24 DISPLAY FENCH-AEXP LINE 10 COL 11 DISPLAY FENCH-ETATO 12 COL 12 DISPLAY FENCH-MONTANT LINE 14 COL 20 DISPLAY FENCH-DATEENCH LINE 16 COL 20 READ FENCH NEXT AT END MOVE 1 TO W-FIN END-READ *on verifie si c pas la fin du fichier IF W-FIN = 1 THEN DISPLAY "Q)UITTER " LINE 22 ACCEPT W-CHOIX ELSE DISPLAY "Q)UITTER S)UIVANT" LINE 22 COL 3 DISPLAY "VOTRE CHOIX (Q,q,S,s):" LINE 23 COL 3 ACCEPT W-CHOIX LINE 23 COL 39 END-IF
est ce que vous croyez que c'est un problème de redondance
car j'ai travaillé sur des données suivant :
je pensais qu'un acheteur peut proposer plusieurs offres sur le même lot mais parès c'est le montant qui va déterminer qui sera gagnant (G) ou perdant (P)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 numlot numach AEXP EtatO montant Datench 001 1 "o" "G" 100 2000 001 1 "n" "P" 90 2001 001 2 "n" "G" 100 2004 001 3 "o" "G" 100 2005 001 4 "o" "P" 50 2007 002 1 "n" "G" 90 2007 003 2 "n" "G" 120 2008 003 4 "o" "P" 130 2009 004 4 "o" "G" 400 2007
Partager