/***********************************************************************/ /* This is the MUL Access Method class declaration for files that are */ /* physically split in multiple files having the same format. */ /***********************************************************************/ class DllExport TDBMUL : public TDBASE { //friend class MULCOL; public: // Constructor
TDBMUL(PTDB tdbp);
TDBMUL(PTDBMUL tdbp);
// Database routines
PCOL MakeCol(PGLOBAL g, PCOLDEF cdp, PCOL cprec, int n) override
{strcpy(g->Message, MSG(MUL_MAKECOL_ERR)); return NULL;} int Cardinality(PGLOBAL g) override; int GetMaxSize(PGLOBAL g) override; int GetProgMax(PGLOBAL g) override; int GetProgCur(void) override; int RowNumber(PGLOBAL g, bool b = false) override; bool OpenDB(PGLOBAL g) override; int ReadDB(PGLOBAL g) override; int WriteDB(PGLOBAL g) override; int DeleteDB(PGLOBAL g, int irc) override; void CloseDB(PGLOBAL g) override;
protected:
// Members
PTDB Tdbp; // Points to a (file) table class char* *Filenames; // Points to file names int Rows; // Total rows of already read files int Mul; // Type of multiple file list int NumFiles; // Number of physical files int iFile; // Index of currently processed file
}; // end of class TDBMUL
#if0 /***********************************************************************/ /* This is the MSD Access Method class declaration for files that are */ /* physically split in multiple files having the same format. */ /* This sub-class also include files of the sub-directories. */ /***********************************************************************/ class DllExport TDBMSD : public TDBMUL { //friend class MULCOL; public: // Constructor
TDBMSD(PTDB tdbp) : TDBMUL(tdbp) {}
TDBMSD(PTDBMSD tdbp) : TDBMUL(tdbp) {}
// Methods bool DefineAM(PGLOBAL g, LPCSTR am, int poff) override;
PTDB GetTable(PGLOBAL g, MODE m) override;
protected: // Members
PSZ Fn; /* Path/Name of file search */ bool Incl; /* true to include sub-directories */ bool Huge; /* true if files can be larger than 2GB */ bool Nodir; /* true to exclude directories */
}; // end of DIRDEF
/***********************************************************************/ /* This is the DIR Access Method class declaration for tables that */ /* represent a directory listing. The pathname is given at the create */ /* time and can contain wildcard characters in the file name, and the */ /* (virtual) table is populated when it is in use. */ /***********************************************************************/ class TDBDIR : public TDBASE { friendclass DIRCOL; friendclass TDBMUL; public: // Constructor
TDBDIR(PDIRDEF tdp);
TDBDIR(PSZ fpat);
// Implementation
AMT GetAmType(void) override {return TYPE_AM_DIR;}
// Methods int GetRecpos(void) override {return iFile;}
// Database routines
PCOL MakeCol(PGLOBAL g, PCOLDEF cdp, PCOL cprec, int n) override; int GetMaxSize(PGLOBAL g) override; int GetProgMax(PGLOBAL g) override {return GetMaxSize(g);} int GetProgCur(void) override {return iFile;} bool OpenDB(PGLOBAL g) override; int ReadDB(PGLOBAL g) override; int WriteDB(PGLOBAL g) override; int DeleteDB(PGLOBAL g, int irc) override; void CloseDB(PGLOBAL g) override;
// Members
PSZ To_File; // Points to file search pathname int iFile; // Index of currently retrieved file #ifdefined(_WIN32)
PVAL Dvalp; // Used to retrieve file date values
WIN32_FIND_DATA FileData; // Find data structure
HANDLE hSearch; // Search handle char Drive[_MAX_DRIVE]; // Drive name #else// !_WIN32 struct stat Fileinfo; // File info structure struct dirent *Entry; // Point to directory entry structure
DIR *Dir; // To searched directory structure bool Done; // true when _splipath is done char Pattern[_MAX_FNAME+_MAX_EXT]; #endif// !_WIN32 char Fpath[_MAX_PATH]; // Absolute file search pattern char Direc[_MAX_DIR]; // Search path char Fname[_MAX_FNAME]; // File name char Ftype[_MAX_EXT]; // File extention bool Nodir; // Exclude directories from file list
}; // end of class TDBDIR
/***********************************************************************/ /* This is the DIR Access Method class declaration for tables that */ /* represent a directory listing. The pathname is given at the create */ /* time and can contain wildcard characters in the file name, and the */ /* (virtual) table is populated when it is in use. In addition, this */ /* class also includes files of included sub-directories. */ /***********************************************************************/ class TDBSDR : public TDBDIR { friendclass DIRCOL; friendclass TDBMUL; public: // Constructors
TDBSDR(PDIRDEF tdp) : TDBDIR(tdp) {Sub = NULL;}
TDBSDR(PSZ fpat) : TDBDIR(fpat) {Sub = NULL;}
// Database routines int GetMaxSize(PGLOBAL g) override; int GetProgMax(PGLOBAL g) override {return GetMaxSize(g);} bool OpenDB(PGLOBAL g) override; int ReadDB(PGLOBAL g) override; //void CloseDB(PGLOBAL g) override;
// Members
PSUBDIR Sub; // To current Subdir block
}; // end of class TDBSDR
/***********************************************************************/ /* Class DIRCOL: DIR access method column descriptor. */ /* This A.M. is used for tables populated by DIR file name list. */ /***********************************************************************/ class DIRCOL : public COLBLK { public: // Constructors
DIRCOL(PCOLDEF cdp, PTDB tdbp, PCOL cprec, int i, PCSZ am = "DIR");
DIRCOL(DIRCOL *colp, PTDB tdbp); // Constructor used in copy process
// Implementation int GetAmType(void) override {return TYPE_AM_DIR;}
// Methods void ReadColumn(PGLOBAL g) override;
protected: // Default constructor not to be used
DIRCOL(void) = default; #ifdefined(_WIN32) void SetTimeValue(PGLOBAL g, FILETIME& ftime); #endif// _WIN32
// Members
PTDBDIR Tdbp; // To DIR table int N; // Column number
}; // end of class DIRCOL
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet am 2026-10-08)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.