Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,79 +0,0 @@
|
|||
>>SOURCE FREE
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. sedol.
|
||||
|
||||
ENVIRONMENT DIVISION.
|
||||
INPUT-OUTPUT SECTION.
|
||||
FILE-CONTROL.
|
||||
SELECT sedol-file ASSIGN "sedol.txt"
|
||||
ORGANIZATION LINE SEQUENTIAL
|
||||
FILE STATUS sedol-file-status.
|
||||
|
||||
DATA DIVISION.
|
||||
FILE SECTION.
|
||||
FD sedol-file.
|
||||
01 sedol PIC X(6).
|
||||
|
||||
WORKING-STORAGE SECTION.
|
||||
01 sedol-file-status PIC XX.
|
||||
88 sedol-file-ok VALUE "00".
|
||||
|
||||
01 digit-num PIC 9 COMP.
|
||||
|
||||
01 digit-weights-area VALUE "1317391".
|
||||
03 digit-weights PIC 9 OCCURS 7 TIMES.
|
||||
|
||||
01 weighted-sum-parts-area.
|
||||
03 weighted-sum-parts PIC 9(3) COMP OCCURS 6 TIMES.
|
||||
|
||||
01 weighted-sum PIC 9(3) COMP.
|
||||
|
||||
01 check-digit PIC 9.
|
||||
|
||||
PROCEDURE DIVISION.
|
||||
OPEN INPUT sedol-file
|
||||
PERFORM UNTIL NOT sedol-file-ok
|
||||
READ sedol-file
|
||||
AT END
|
||||
EXIT PERFORM
|
||||
END-READ
|
||||
|
||||
MOVE FUNCTION UPPER-CASE(sedol) TO sedol
|
||||
|
||||
PERFORM VARYING digit-num FROM 1 BY 1 UNTIL digit-num > 6
|
||||
EVALUATE TRUE
|
||||
WHEN sedol (digit-num:1) IS ALPHABETIC-UPPER
|
||||
IF sedol (digit-num:1) = "A" OR "E" OR "I" OR "O" OR "U"
|
||||
DISPLAY "Invalid SEDOL: " sedol
|
||||
EXIT PERFORM CYCLE
|
||||
END-IF
|
||||
|
||||
COMPUTE weighted-sum-parts (digit-num) =
|
||||
(FUNCTION ORD(sedol (digit-num:1)) - FUNCTION ORD("A")
|
||||
+ 10) * digit-weights (digit-num)
|
||||
|
||||
WHEN sedol (digit-num:1) IS NUMERIC
|
||||
MULTIPLY FUNCTION NUMVAL(sedol (digit-num:1))
|
||||
BY digit-weights (digit-num)
|
||||
GIVING weighted-sum-parts (digit-num)
|
||||
|
||||
WHEN OTHER
|
||||
DISPLAY "Invalid SEDOL: " sedol
|
||||
EXIT PERFORM CYCLE
|
||||
END-EVALUATE
|
||||
END-PERFORM
|
||||
|
||||
INITIALIZE weighted-sum
|
||||
PERFORM VARYING digit-num FROM 1 BY 1 UNTIL digit-num > 6
|
||||
ADD weighted-sum-parts (digit-num) TO weighted-sum
|
||||
END-PERFORM
|
||||
|
||||
COMPUTE check-digit =
|
||||
FUNCTION MOD(10 - FUNCTION MOD(weighted-sum, 10), 10)
|
||||
|
||||
DISPLAY sedol check-digit
|
||||
END-PERFORM
|
||||
|
||||
CLOSE sedol-file
|
||||
.
|
||||
END PROGRAM sedol.
|
||||
Loading…
Add table
Add a link
Reference in a new issue