96 lines
1.9 KiB
C
96 lines
1.9 KiB
C
|
/* d4field.c (c)Copyright Sequiter Software Inc., 1988-1996. All rights reserved. */
|
||
|
|
||
|
#include "d4all.h"
|
||
|
#ifndef S4UNIX
|
||
|
#ifdef __TURBOC__
|
||
|
#pragma hdrstop
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
FIELD4 *S4FUNCTION d4field( DATA4 *data, const char *fieldName )
|
||
|
{
|
||
|
int i ;
|
||
|
|
||
|
#ifdef S4VBASIC
|
||
|
if ( c4parm_check( data, 2, E94001 ) )
|
||
|
return 0 ;
|
||
|
#endif
|
||
|
|
||
|
#ifdef E4PARM_HIGH
|
||
|
if ( data == 0 )
|
||
|
{
|
||
|
error4( 0, e4parm_null, E94001 ) ;
|
||
|
return 0 ;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
i = d4fieldNumber( data, fieldName ) - 1 ;
|
||
|
if ( i < 0 )
|
||
|
return 0 ;
|
||
|
|
||
|
return data->fields + i ;
|
||
|
}
|
||
|
|
||
|
FIELD4 *S4FUNCTION d4fieldJ( DATA4 *data, const int jField )
|
||
|
{
|
||
|
#ifdef S4VBASIC
|
||
|
if ( c4parm_check( data, 2, E94002 ) )
|
||
|
return 0 ;
|
||
|
#endif
|
||
|
|
||
|
#ifdef E4PARM_HIGH
|
||
|
if ( data == 0 )
|
||
|
{
|
||
|
error4( 0, e4parm_null, E94002 ) ;
|
||
|
return (FIELD4 *)0 ;
|
||
|
}
|
||
|
if ( jField <= 0 || data->fields == 0 || jField > data->dataFile->nFields )
|
||
|
{
|
||
|
error4( data->codeBase, e4parm, E94002 ) ;
|
||
|
return (FIELD4 *)0 ;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
return data->fields + jField - 1 ;
|
||
|
}
|
||
|
|
||
|
int S4FUNCTION d4fieldNumber( DATA4 *data, const char *fieldName )
|
||
|
{
|
||
|
char buf[256] ;
|
||
|
int i ;
|
||
|
|
||
|
#ifdef E4PARM_HIGH
|
||
|
if ( data == 0 )
|
||
|
return error4( 0, e4parm_null, E94003 ) ;
|
||
|
#endif
|
||
|
|
||
|
if ( fieldName )
|
||
|
{
|
||
|
u4ncpy( buf, fieldName, sizeof( buf ) ) ;
|
||
|
c4trimN( buf, sizeof( buf ) ) ;
|
||
|
c4upper( buf ) ;
|
||
|
|
||
|
for ( i = 0 ; i < data->dataFile->nFields ; i++ )
|
||
|
if ( !strcmp( buf, data->fields[i].name ) )
|
||
|
return i + 1 ;
|
||
|
}
|
||
|
|
||
|
if ( data->codeBase->errFieldName )
|
||
|
return error4describe( data->codeBase, e4fieldName, E94003, fieldName, 0, 0 ) ;
|
||
|
return e4fieldName ;
|
||
|
}
|
||
|
|
||
|
#ifdef S4VB_DOS
|
||
|
|
||
|
FIELD4 *d4field_v( DATA4 *d4, char *fldName )
|
||
|
{
|
||
|
return d4field( d4, c4str(fldName) ) ;
|
||
|
}
|
||
|
|
||
|
int d4fieldNumber( DATA4 *d4, char *fldName )
|
||
|
{
|
||
|
return d4fieldNumber( d4, c4str(fldName) ) ;
|
||
|
}
|
||
|
|
||
|
#endif
|