a99  V32.6
allegro Windows Hauptprogramm
 Alle Klassen Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Makrodefinitionen
rpnfind.hpp
gehe zur Dokumentation dieser Datei
1 #ifndef AVFIND_HPP
2 #define AVFIND_HPP
3 
4 #define NO_SEARCH -2 // Rueckgabewerte der Suche
5 #define TOO_MANY -1
6 #define NO_RESULT 0
7 #define L_STRING 256 // Bytezahl allgemeiner String
8 
9 class ResultElem{
10 public:
11  ResultElem(RECNR lMaxr);
12  ~ResultElem();
13  BOOL Initialize(char*,BOOL bRestrict=FALSE);
14  BOOL CopyResultSet(RECNR*);
16  void Sort();
17  BOOL BinSearch(RECNR);
18 
19  ResultElem* pNext; // naechstes Stackelement
20  RECNR* pResultSet; // Ergebnisliste
21  RECNR lNum; // Anzahl Ergebnisse
22  RECNR lMaxRes; // max. Anzahl Ergebnisse
23  BOOL bSorted; // flag: Ergebnisliste ist sortiert
24  char* argument; // das Arguent des find-Befehls
25  BOOL bRestriction; // flag: argument ist eine Restriction
26 
27 };
28 
29 
30 class RStack {
31 public:
32  RStack(ABASE* Bank,CHAR* Restri,RECNR lMaxr){
34  iCount=0;bank=Bank;restri=Restri;
35  lMaxRes=lMaxr;
36  }
38  int iCount; // Anzahl Ergebnismengen auf dem Stack
39  RECNR lMaxRes; //max. Groesse d. Ergebnismenge
42 
45  ResultElem* push(RECNR*,char* Argument="",BOOL bRestrict=FALSE);
46  ResultElem* push(ResultElem* pNeuElem);
47  ResultElem* and(RECNR* pResultSet);
48  ResultElem* or(RECNR* pResultSet);
49  ResultElem* not(RECNR* pResultSet);
50 
52 
53  int Restriction(ResultElem*, char modus='A');
54  void ClearStack();
55 };
56 
57 // klassenlose Hilfsfunktionen
58 char* extract(char* lpUxy,char** ppExtract);
59 char* GetRestrictArgument(char* buffer,char* argument);
60 BOOL IsItRestriction(ABASE *Bank, char* argument);
61 int WhichRestr(ABASE *Bank, char* argument);
62 
63 #endif