This repository was archived by the owner on Sep 11, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDC.CREATE.DICT
executable file
·118 lines (102 loc) · 3.2 KB
/
DC.CREATE.DICT
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Name: DC.DREATE.DICT
* Type: Program
* Author: dreller
* Date: Apr 18, 2020
* Git: mvDevCore
* System: openQM 3.4.18
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* Create DICT items. Pass to DC.CREATE.DICT.SUBR.
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*
* Calling methods:
* - DC.CREATE.DICT
* Will create DICT items defined in 'dcArtifDict.txt' file.
* - DC.CREATE.DICT {filename}
* Will create DICT items defined in {/path/to/file}
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
$INCLUDE DC.INC.H
EQU EQU$MYNAME TO "DC.CREATE.DICT"
EQU EQU$MODE TO "UPD" ;* UPD/ADD
! Pre-actions
HEAD = ""
HEAD<1> = "Dictionary creator."
HEAD<2> = "Mode: Create new DICT items only."
IF EQU$MODE = "UPD" THEN
HEAD<2> = "Mode: Recreate DICT items (overwrite if already existing)."
END
CALL DC.HEAD(HEAD)
! Program mainline
GOSUB 1000 ;* Get the file from sentence
GOSUB 2000 ;* Validate the file
GOSUB 3000 ;* Open the file
! Post-actions
!undefined
RETURN
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Get the file from sentence
1000:
FILE.PATH = ""
ERR.TEMP = ""
CALL DC.SENTENCE.SUBR(SENTENCE(), EQU$MYNAME, FILE.PATH, ERR.TEMP)
!---- If no file is passed, use the default one
IF FILE.PATH = "" THEN
FILE.PATH = @PATH:@DS:"DEVCORE.PGM":@DS:"dcArtifDict.txt"
END
RETURN
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
! Validate the target file
2000:
!-- Is the file exists ?
VALID.FLAG = OSPATH(FILE.PATH, 2)
IF NOT(VALID.FLAG) THEN
DISPLAY "Path not found: ":FILE.PATH
RETURN
END
!-- If it's a real file (not a directory)
VALID.FLAG = OSPATH(FILE.PATH, 16)
IF NOT(VALID.FLAG) THEN
DISPLAY "This is not a file: ":FILE.PATH
RETURN
END
RETURN
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
! Open the file
3000:
OPENSEQ FILE.PATH TO SOURCE.FILE THEN GOTO 3010
DISPLAY "Unable to open file: ":FILE.PATH
RETURN
3010:
LOOP
READSEQ SOURCE.ITEM FROM SOURCE.FILE ELSE GOTO 3020
GOSUB 4000
REPEAT
3020:
CLOSE SOURCE.FILE
RETURN
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
! Create the dict item
4000:
!-- Validate if entry should be treated
IS.COMMENT = (SOURCE.ITEM[1,1]="*")
IS.EMPTY = (LEN(SOURCE.ITEM)<2)
IF IS.COMMENT OR IS.EMPTY THEN
RETURN
END
!-- Transform SOURCE.ITEM to the required MV for CD.CREATE.DICT.SUBR
RESPONSE = ""
PARMS = CHANGE(SOURCE.ITEM, "|", @AM)
TEMP.TEXT = "Creating DICT, ":PARMS<DC$DICT.TYPE>
TEMP.TEXT:= "-Type, Name '":PARMS<DC$DICT.NAME>:"'... "
DISPLAY TEMP.TEXT:
CALL DC.CREATE.DICT.SUBR(PARMS, EQU$MODE, RESPONSE)
RESPONSE.TEXT = "OK"
ERROR.FLAG = (RESPONSE # "0")
IF ERROR.FLAG THEN
CALL !ERRTEXT(RESPONSE.TEXT, RESPONSE)
END
DISPLAY RESPONSE.TEXT
RETURN
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
END