55 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
| #ifndef __SORT_H
 | |
| #define __SORT_H
 | |
| 
 | |
| #ifndef __OBJECT_H
 | |
| #include <object.h>
 | |
| #endif 
 | |
| 
 | |
| // @doc EXTERNAL
 | |
| 
 | |
| // @class TSort | Classe per l'ordinamento di strutture o di record
 | |
| //
 | |
| // @base public | TObject
 | |
| class TSort : public TObject
 | |
| // @author:(INTERNAL) Sandro
 | |
| {
 | |
|   // @friend TRecfield
 | |
|   friend class TRecfield;
 | |
| 
 | |
|   // @access:(INTERNAL) Private Member
 | |
| 
 | |
|   // @cmember:(INTERNAL) Puntatore alla struttura di un sort
 | |
|   struct s_prm* _sortvar; 
 | |
|   // @cmember:(INTERNAL) Indice nella tabella dei campi della chiave
 | |
|   int   nsortkey;         
 | |
| 
 | |
|   // @access Public Member
 | |
| public:
 | |
|   // @cmember Inizializza il sort
 | |
|   void init();
 | |
|   // @cmember Aggiunge un record al sort
 | |
|   void sort(const char * record);
 | |
|   // @cmember Chiude il sort
 | |
|   void endsort();
 | |
|   // @cmember Restituisce il prossimo record ordinato (ultimo NULL)
 | |
|   const char* retrieve();
 | |
|   // @cmember Stampa una statistica sul sort
 | |
|   void stats();
 | |
| 
 | |
|   // @cmember Ritorna la lunghezza del record di sort
 | |
|   int length() const;
 | |
|   // @cmember Imposta la lunghezza del record di sort e inizializza il sort
 | |
|   void reset(int len);
 | |
|   // @cmember Inizializza una chiave di ordinamento per il sort
 | |
|   void addsortkey(int pos, int len, char direction = 'a');
 | |
|   // @cmember Inizializza una chiave di ordinamento per il sort usando il campo di un file
 | |
|   void addsortkey(TRecfield& f, char direction = 'a');
 | |
| 
 | |
|   // @cmember Costruttore
 | |
|   TSort(int reclen = 0);
 | |
|   // @cmember Distruttore
 | |
|   virtual ~TSort();
 | |
| };
 | |
| 
 | |
| #endif // __SORT_H
 |