96 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
/* 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
 |