1994-08-12 10:52:49 +00:00
|
|
|
#ifndef __SORT_H
|
|
|
|
#define __SORT_H
|
|
|
|
|
|
|
|
#ifndef __OBJECT_H
|
1995-06-27 10:18:49 +00:00
|
|
|
#include <object.h>
|
1994-08-12 10:52:49 +00:00
|
|
|
#endif
|
|
|
|
|
1998-02-24 10:37:28 +00:00
|
|
|
class TRecfield;
|
|
|
|
|
1995-06-27 10:18:49 +00:00
|
|
|
// @doc EXTERNAL
|
1994-08-12 10:52:49 +00:00
|
|
|
|
1995-06-27 10:18:49 +00:00
|
|
|
// @class TSort | Classe per l'ordinamento di strutture o di record
|
|
|
|
//
|
|
|
|
// @base public | TObject
|
|
|
|
class TSort : public TObject
|
1996-02-05 19:00:53 +00:00
|
|
|
// @author:(INTERNAL) Sandro
|
1995-06-27 10:18:49 +00:00
|
|
|
{
|
1996-02-05 19:00:53 +00:00
|
|
|
// @access:(INTERNAL) Private Member
|
1995-07-21 17:27:58 +00:00
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Puntatore alla struttura di un sort
|
1995-06-27 10:18:49 +00:00
|
|
|
struct s_prm* _sortvar;
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Indice nella tabella dei campi della chiave
|
2010-03-01 14:50:41 +00:00
|
|
|
int _nsortkey;
|
1994-08-12 10:52:49 +00:00
|
|
|
|
1995-06-27 10:18:49 +00:00
|
|
|
// @access Public Member
|
1994-08-12 10:52:49 +00:00
|
|
|
public:
|
1995-06-27 10:18:49 +00:00
|
|
|
// @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
|
1994-10-31 11:11:19 +00:00
|
|
|
void addsortkey(int pos, int len, char direction = 'a');
|
1995-06-27 10:18:49 +00:00
|
|
|
// @cmember Inizializza una chiave di ordinamento per il sort usando il campo di un file
|
1994-10-31 11:11:19 +00:00
|
|
|
void addsortkey(TRecfield& f, char direction = 'a');
|
|
|
|
|
1995-06-27 10:18:49 +00:00
|
|
|
// @cmember Costruttore
|
1994-10-31 11:11:19 +00:00
|
|
|
TSort(int reclen = 0);
|
1995-06-27 10:18:49 +00:00
|
|
|
// @cmember Distruttore
|
1994-10-31 11:11:19 +00:00
|
|
|
virtual ~TSort();
|
1994-08-12 10:52:49 +00:00
|
|
|
};
|
1995-11-27 08:39:18 +00:00
|
|
|
|
1994-08-12 10:52:49 +00:00
|
|
|
#endif // __SORT_H
|