Rev 85 | Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
84 | daniel-mar | 1 | unit UD2_Parsing; |
2 | |||
3 | interface |
||
4 | |||
5 | uses |
||
6 | Windows, SysUtils; |
||
7 | |||
8 | // TODO: use this for better object oriented programming |
||
9 | |||
10 | type |
||
11 | TUD2Command = record |
||
12 | executable: string; |
||
13 | runAsAdmin: boolean; |
||
14 | runInOwnDirectory: boolean; |
||
15 | windowMode: integer; |
||
16 | end; |
||
17 | TUD2CommandArray = array of TUD2Command; |
||
18 | |||
19 | TUD2TDFCondition = record |
||
20 | idMethodName: string; |
||
21 | idStr: string; |
||
22 | dynamicDataUsed: Boolean; |
||
23 | dynamicData: string; |
||
24 | caseSensitive: boolean; |
||
25 | end; |
||
26 | TUD2TDFConditionArray = array of TUD2TDFCondition; |
||
27 | |||
28 | TUD2TDFEntry = record |
||
29 | ids: TUD2TDFConditionArray; |
||
30 | commands: TUD2CommandArray; |
||
31 | end; |
||
32 | TUD2TDFEntryArray = array of TUD2TDFEntry; |
||
33 | |||
34 | implementation |
||
35 | |||
36 | uses |
||
37 | UD2_Utils; |
||
38 | |||
39 | function ParseTdfLine(line: string; var entry: TUD2TDFEntry): boolean; |
||
40 | begin |
||
41 | // TODO: xxxxx |
||
42 | |||
43 | (* |
||
44 | entry.idName: string; |
||
45 | entry.idValue: string; |
||
46 | entry.dynamicDataUsed: Boolean; |
||
47 | entry.dynamicData: string; |
||
48 | entry.caseSensitive: boolean; |
||
49 | entry.commands: TUD2CommandArray; |
||
50 | *) |
||
51 | |||
52 | // ReadSectionValues |
||
53 | |||
54 | |||
55 | (* |
||
56 | nameVal := SplitString('=', idTermAndCmd); |
||
57 | if Length(nameVal) < 2 then exit; |
||
58 | idTerm := nameVal[0]; |
||
59 | cmd := nameVal[1]; |
||
60 | *) |
||
61 | end; |
||
62 | |||
63 | function ParseCommandLine(line: string; var cmd: TUD2Command): boolean; |
||
64 | begin |
||
65 | if Pos(UD2_RUN_AS_ADMIN, line) >= 1 then |
||
66 | begin |
||
67 | line := StringReplace(line, UD2_RUN_AS_ADMIN, '', [rfReplaceAll]); |
||
68 | cmd.runAsAdmin := true; |
||
69 | end |
||
70 | else cmd.runAsAdmin := false; |
||
71 | |||
72 | if Pos(UD2_RUN_IN_OWN_DIRECTORY_PREFIX, line) >= 1 then |
||
73 | begin |
||
74 | line := StringReplace(line, UD2_RUN_IN_OWN_DIRECTORY_PREFIX, '', [rfReplaceAll]); |
||
75 | cmd.runInOwnDirectory := true; |
||
76 | end |
||
77 | else cmd.runInOwnDirectory := false; |
||
78 | |||
79 | cmd.executable := line; |
||
80 | |||
81 | cmd.windowMode := SW_NORMAL; // TODO (future): make it configurable |
||
82 | |||
83 | result := true; |
||
84 | end; |
||
85 | |||
86 | end. |
||
87 |