PostGIS 3.7.0dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ DBFLoadRecord()

static int DBFLoadRecord ( DBFHandle  psDBF,
int  iRecord 
)
static

Definition at line 257 of file dbfopen.c.

259{
260 if( psDBF->nCurrentRecord != iRecord )
261 {
262 SAOffset nRecordOffset;
263
264 if( !DBFFlushRecord( psDBF ) )
265 return FALSE;
266
267 nRecordOffset =
268 psDBF->nRecordLength * STATIC_CAST(SAOffset,iRecord) + psDBF->nHeaderLength;
269
270 if( psDBF->sHooks.FSeek( psDBF->fp, nRecordOffset, SEEK_SET ) != 0 )
271 {
272 char szMessage[128];
273 snprintf( szMessage, sizeof(szMessage), "fseek(%ld) failed on DBF file.",
274 STATIC_CAST(long, nRecordOffset) );
275 psDBF->sHooks.Error( szMessage );
276 return FALSE;
277 }
278
279 if( psDBF->sHooks.FRead( psDBF->pszCurrentRecord,
280 psDBF->nRecordLength, 1, psDBF->fp ) != 1 )
281 {
282 char szMessage[128];
283 snprintf( szMessage, sizeof(szMessage), "fread(%d) failed on DBF file.",
284 psDBF->nRecordLength );
285 psDBF->sHooks.Error( szMessage );
286 return FALSE;
287 }
288
289 psDBF->nCurrentRecord = iRecord;
290/* -------------------------------------------------------------------- */
291/* Require a seek for next write in case of mixed R/W operations. */
292/* -------------------------------------------------------------------- */
294 }
295
296 return TRUE;
297}
#define STATIC_CAST(type, x)
Definition dbfopen.c:96
#define TRUE
Definition dbfopen.c:73
#define FALSE
Definition dbfopen.c:72
static int DBFFlushRecord(DBFHandle psDBF)
Definition dbfopen.c:195
unsigned long SAOffset
Definition shapefil.h:286
int nRecordLength
Definition shapefil.h:596
int nHeaderLength
Definition shapefil.h:597
char * pszCurrentRecord
Definition shapefil.h:610
SAFile fp
Definition shapefil.h:592
int bRequireNextWriteSeek
Definition shapefil.h:633
SAHooks sHooks
Definition shapefil.h:590
int nCurrentRecord
Definition shapefil.h:608
void(* Error)(const char *message)
Definition shapefil.h:299
SAOffset(* FRead)(void *p, SAOffset size, SAOffset nmemb, SAFile file)
Definition shapefil.h:291
SAOffset(* FSeek)(SAFile file, SAOffset offset, int whence)
Definition shapefil.h:293

References DBFInfo::bRequireNextWriteSeek, DBFFlushRecord(), SAHooks::Error, FALSE, DBFInfo::fp, SAHooks::FRead, SAHooks::FSeek, DBFInfo::nCurrentRecord, DBFInfo::nHeaderLength, DBFInfo::nRecordLength, DBFInfo::pszCurrentRecord, DBFInfo::sHooks, STATIC_CAST, and TRUE.

Referenced by DBFIsRecordDeleted(), DBFMarkRecordDeleted(), DBFReadAttribute(), DBFReadTuple(), DBFWriteAttribute(), DBFWriteAttributeDirectly(), and DBFWriteTuple().

Here is the call graph for this function:
Here is the caller graph for this function: