Files
harbour-core/include/hbrddsdf.h
Przemysław Czerpak aae691a434 2016-01-04 21:25 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbznet.c
  * src/rtl/hbzsock.c
    ! cleanup

  * include/hbrdddel.h
  * include/hbrddsdf.h
  * src/rdd/delim1.c
  * src/rdd/sdf1.c
    + added support for any standard EOL combination to DELIM and SDF RDDs,
      Now LF, CRLF, CR and LFCR EOLs are supported and automatically
      recognized during import if one of such EOLs is also set in HVM by
      _SET_EOL.
    % use 8192 bytes read ahead buffer to speed up import from DELIM and
      SDF RDDs
    + modified file IO operations to work with stream only (no support for
      file seek) Harbour File IO drivers
    % optimized some File IO operations
    * strip all EOF (^Z) characters from imported data. It's not strictly
      Cl*pper compatible because Cl*pper interrupts import on first ^Z
      character anyhow it was always the source of problems when .txt
      files are concatenated by tools like 'cat' in *nixes so I decided
      to change it.
    + added support RECORD clause command in commands like:
         APPEND FROM "data.txt" RECORD (nRec) DELIMITED
         APPEND FROM "data.txt" RECORD (nRec) SDF
      It's Harbour extension - Cl*pper does not support it.
    + generate RTE when some unsupported in transfer RDDs methods are
      called
2016-01-04 21:25:29 +01:00

110 lines
4.0 KiB
C

/*
* Harbour Project source code:
* SDF RDD
*
* Copyright 2006 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
* www - http://harbour-project.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this software; see the file COPYING.txt. If not, write to
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
*
* As a special exception, the Harbour Project gives permission for
* additional uses of the text contained in its release of Harbour.
*
* The exception is that, if you link the Harbour libraries with other
* files to produce an executable, this does not by itself cause the
* resulting executable to be covered by the GNU General Public License.
* Your use of that executable is in no way restricted on account of
* linking the Harbour library code into it.
*
* This exception does not however invalidate any other reasons why
* the executable file might be covered by the GNU General Public License.
*
* This exception applies only to the code released by the Harbour
* Project under the name Harbour. If you copy code from other
* Harbour Project or Free Software Foundation releases into a copy of
* Harbour, as the General Public License permits, the exception does
* not apply to the code that you add in this way. To avoid misleading
* anyone as to the status of such modified files, you must delete
* this exception notice from them.
*
* If you write modifications of your own for Harbour, it is your choice
* whether to permit this exception to apply to your modifications.
* If you do not wish that, delete this exception notice.
*
*/
#ifndef HB_RDDSDF_H_
#define HB_RDDSDF_H_
#include "hbapirdd.h"
HB_EXTERN_BEGIN
/* SDF default file extensions */
#define SDF_TABLEEXT ".txt"
/*
* SDF WORKAREA
* ------------
* The Workarea Structure of SDF RDD
*
*/
typedef struct _SDFAREA
{
AREA area;
/*
* SDFS's additions to the workarea structure
*
* Warning: The above section MUST match WORKAREA exactly! Any
* additions to the structure MUST be added below, as in this
* example.
*/
PHB_FILE pFile; /* Data file handle */
char * szFileName; /* Name of data file */
char * szEol; /* EOL marker */
HB_USHORT uiEolLen; /* Size of EOL marker */
HB_USHORT uiRecordLen; /* Size of record */
HB_USHORT * pFieldOffset; /* Pointer to field offset array */
HB_BYTE * pRecord; /* Buffer of record data */
HB_BYTE * pBuffer; /* Read/Write */
HB_SIZE nBufferSize; /* IO buffer size */
HB_SIZE nBufferRead; /* Number of bytes in read buffer */
HB_SIZE nBufferIndex; /* Index to read read buffer */
HB_ULONG ulRecNo; /* Current record */
HB_ULONG ulRecCount; /* Number of records (in export) */
HB_BOOL fTransRec; /* Can put whole records */
HB_BOOL fFlush; /* Data was written to SDF and not commited */
HB_BOOL fShared; /* Shared file */
HB_BOOL fReadonly; /* Read only file */
HB_BOOL fPositioned; /* Positioned record */
HB_BOOL fRecordChanged; /* Record changed */
HB_BOOL fAnyEol; /* Check for CRLF, LF, CR and LFCR EOLs */
} SDFAREA;
typedef SDFAREA * LPSDFAREA;
#ifndef SDFAREAP
#define SDFAREAP LPSDFAREA
#endif
HB_EXTERN_END
#endif /* HB_RDDSDF_H_ */