Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  tabxcl.h  Sprache: unbekannt

 
// TABXCL.H     Olivier Bertrand    2013
// Defines the XCOL tables

#include "tabutil.h"

typedef class XCLDEF  *PXCLDEF;
typedef class TDBXCL  *PTDBXCL;
typedef class XCLCOL  *PXCLCOL;

/* -------------------------- XCOL classes --------------------------- */

/***********************************************************************/
/*  XCOL: table having one column containing several values comma      */
/*  (or any other character) separated. When creating the table, the   */
/*  name of the X column is given by the NAME option.                  */
/*  This sample has a limitation:                                      */
/*  - The X column has the same length than in the physical file.      */
/*  This tables produces as many rows for a physical row than the      */
/*  number of items in the X column (eventually 0).                    */
/***********************************************************************/

/***********************************************************************/
/*  XCL table.                                                         */
/***********************************************************************/
class XCLDEF : public PRXDEF {            /* Logical table description */
 friend class TDBXCL;
 public:
  // Constructor
  XCLDEF(void);

  // Implementation
  const char *GetType(void) override {return "XCL";}

  // Methods
  bool DefineAM(PGLOBAL g, LPCSTR am, int poff) override;
  PTDB GetTable(PGLOBAL g, MODE mode) override;

 protected:
  // Members
  char   *Xcol;              /* The column containing separated fields */
 char    Sep;        /* The field separator, defaults to comma */
  int     Mult;              /* Multiplication factor                  */
  }; // end of XCLDEF

/***********************************************************************/
/*  This is the class declaration for the XCOL table.                  */
/***********************************************************************/
class TDBXCL : public TDBPRX {
  friend class XCLDEF;
  friend class PRXCOL;
  friend class XCLCOL;
 public:
  // Constructor
  TDBXCL(PXCLDEF tdp);

  // Implementation
  AMT   GetAmType(void) override {return TYPE_AM_XCOL;}

  // Methods
 void  ResetDB(void) override {N = 0; Tdbp->ResetDB();}
 int   RowNumber(PGLOBAL g, bool b = FALSE) override;

  // Database routines
 PCOL  MakeCol(PGLOBAL g, PCOLDEF cdp, PCOL cprec, int n) override;
  int   GetMaxSize(PGLOBAL g) override;
  bool  OpenDB(PGLOBAL g) override;
  int   ReadDB(PGLOBAL g) override;

 protected:
  // Members
 char   *Xcolumn;        // Multiple column name
 PXCLCOL Xcolp;         // To the XCVCOL column
 int     Mult;          // Multiplication factor
 int     N;           // The current table index
 int   M;                      // The occurrence rank
 BYTE    RowFlag;        // 0: Ok, 1: Same, 2: Skip
 bool    New;              // TRUE for new line
 char    Sep;          // The Xcol separator
  }; // end of class TDBXCL

/***********************************************************************/
/*  Class XCLCOL: for the multiple CSV column.                         */
/***********************************************************************/
class XCLCOL : public PRXCOL {
  friend class TDBXCL;
 public:
  // Constructors
  XCLCOL(PCOLDEF cdp, PTDB tdbp, PCOL cprec, int i);

  // Methods
  using PRXCOL::Init;
  void Reset(void) override {}   // Evaluated only by TDBXCL
  void ReadColumn(PGLOBAL g) override;
  bool Init(PGLOBAL g, PTDB tp = NULL) override;

 protected:
  // Default constructor not to be used
  XCLCOL(void) = default;

  // Members
 char   *Cbuf;             // The column buffer
 char   *Cp;              // Pointer to current position
 char    Sep;             // The separator
  }; // end of class XCLCOL

Messung V0.5 in Prozent
C=50 H=100 G=79

[zur Elbe Produktseite wechseln0.9QuellennavigatorsAnalyse erneut starten2026-10-08]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1126438
#Domains=1897691