a99  V32.6
allegro Windows Hauptprogramm
 Alle Klassen Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Makrodefinitionen
konfig.hpp
gehe zur Dokumentation dieser Datei
1 // konfig.hpp : Konfiguration, interne Repraesentation einer CFG
2 // 1995-08-19
3 // Copyright 2011 Universitätsbibliothek Braunschweig, more see bottom
4 
5 // Klasse KONFIG (c) UB Braunschweig 1995
6 // Mit %% sind Hinweise auf aeltere DOS-Namen markiert
7 
8 #ifndef __ALLEGRO
9 #include "allegro.hpp"
10 #endif
11 
12 #ifndef __KONFIG
13 #define __KONFIG
14 
15 // Ein Objekt KONFIG muss immer vorhanden sein, sonst laeuft nichts
16 // Es repraesentiert zur Laufzeit eine Konfigurationsdatei
17 // und enthaelt auch den sog. Hintergrundspeicher (!)
18 // Es wird benoetigt von den Klassen:
19 // RECORD, EXET, INDEX, ABASE
20 
21 // Eigenschaften eines Objekts KONFIG sind in einer CFG-Datei festgelegt
22 // siehe Handbuch: Anh. A
23 // Ein KONFIG kann von mehreren Datenbanken genutzt werden
24 
25 // Der Hintergrundspeicher ist global, d.h. kann von mehreren
26 // Datenbanken gemeinsam genutzt werden (also aufpassen!),
27 // er wird vom ersten KONFIG Objekt angelegt.
28 
29 
30 class KONFIG
31 {
32 
33  //===========//
34 public: // Variablen //
35  //===========//
36 
37  char schema; // erster Buchstabe des Konfig-Dateinamens, default A
38  CHAR **kat; // Deskriptorenliste (Feldnamen und Eigenschaften)
39  int numk; // Anzahl definierter Felder, das letzte ist kat[numk-1]
40 
41 // dimensions
42  unsigned int gspace; // mK size of general record space g
43  unsigned int wspace; // workstring (input) w
44  unsigned int parmem; // mX parameter space
45 
46  unsigned int gdim; // mk number of strings in general space
47 
48  unsigned int kdim; // md number of field descriptors
49 
50 // unsigned int fspace; // mB background space (in allegro.hpp)
51 
52  CHAR *katlist; // Kategorieliste // aufbereitete #-Zeilen der DFG
53 
54  CHAR *qs; // Abfrageliste (query specifiers), Zeilentrenner: xFF
55 
56  // zugehoerige Befehle in der CFG-Datei (s. Anh. A)
57  int tgl; // t tag length: 2,3,4 , default 2
58  int TGL; // == tgl, ==0 wenn alte konfig
59  int nind; // number of indicators = skt-tgl-2, default 0
60  int skt; // k start of field content : default 4 : z.B. #20 abc, a auf Pos. 4
61  // = position of 1st text character in a field
62  int DL; // D Len of date/time field, 8-17, Format yyyymmdd/hh:mm:ss
63  char multcode; // M Standard Wiederholungszeichen fuer Mehrfachfelder
64 
65 // special character codes
66  CHAR KC; // kat code : default '#'
67  CHAR SF; // subfield code : def '' = ASCII 31
68  CHAR FIL; // F filler code : def 219
69  int lz; // f number of filler characters
70  CHAR NS; // n non-sort code : def 170
71  int nsm; // N non-sort mode : def 0
72  CHAR NN; // non-stop code : def '@'
73  CHAR JA; // Yjn
74  CHAR NEIN; // letters for 'yes' and 'no'
75 
76  char dat_n[9]; // cn date of new entry , CFG command cn
77  char dat_e[9]; // ce date last edited CFG command ce
78  char dat_g[9]; // cg field for number generator cg
79 // $$020425 : 16 statt 10
80  char ind_g[16];// ci ipattern : i=index#, ci9ABC? ci
81 
82  CHAR art[360]; // Artikelliste
83 
84 // ======================
85 // Funktionsdeklarationen und -beschreibungen
86 // Die Funktionen selbst stehen in konfig.cpp
87 
88  //==========//
89 public: // Methoden //
90  //==========//
91 
92 // ************* Konstruktor: CFG einlesen
93 
94  KONFIG(char *cfgName, char *dbDir=".\\"); // DOS: %% cfg_read(char*);
95 
96  // cfgName = Name der .CFG-Datei
97  // dbDir = Datenverzeichnis; Default: Startverz.
98 
99  // Fehler: Aerror enthaelt eine Meldung, sonst *Aerror == 0
100 
101  // Beispiel: KONFIG *kfg = new KONFIG("A","C:\ALLEGRO\DEMO");
102 
103 
104 // ************* Pruefroutinen:
105 
106  int KoVerify(CHAR *string); // %% ktest() Feld.Nr gueltig?
107 
108  int KoValidate(int m,FLD *field,int k); // %% kcheck() Inhalt formal korrekt?
109 
110 // FLD mittels descr pruefen:
111 // ret: >=0 OK, -1 = error, Fehlermeldung in Aerror
112 
113  int KoArticle(CHAR *x); // %% article() Artikel am Anfang von x?
114 // int error(char *); // %% error msg, YES/NO box
115 
116  int KoGetLabel(CHAR *ax, CHAR *wx); // $$980131 NEW
117  // get textual label of field ax to wx
118 
119  int KoSubCheck(CHAR *,CHAR,CHAR *); // check subfields, called internally from Validate()
120 
121 
122  ~KONFIG(); // $$970108 NEU Destruktor
123 
124 };
125 
126 #endif
127 
128 /*
129  Copyright 2011 Universitätsbibliothek Braunschweig
130 
131  Licensed under the Apache License, Version 2.0 (the "License");
132  you may not use this file except in compliance with the License.
133  You may obtain a copy of the License at
134 
135  http://www.apache.org/licenses/LICENSE-2.0
136 
137  Unless required by applicable law or agreed to in writing, software
138  distributed under the License is distributed on an "AS IS" BASIS,
139  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
140  See the License for the specific language governing permissions and
141  limitations under the License.
142 */
143