which included commits to RCS files with non-trunk default branches. git-svn-id: svn://10.65.10.50/trunk@976 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			109 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
/*********************************************************************
 | 
						|
 | 
						|
  d4ascii.c     (c)Copyright Sequiter Software Inc., 1990-1991.
 | 
						|
  All rights reserved.
 | 
						|
 | 
						|
  Creates a database file from an ASCII file.
 | 
						|
 | 
						|
  NOTE: Make sure that the accompanying ascii file, 'INVENTOR.ASC' 
 | 
						|
  is with this file when executing the program.
 | 
						|
 | 
						|
  *********************************************************************/
 | 
						|
 | 
						|
#include "d4all.h"
 | 
						|
 | 
						|
#ifdef __TURBOC__
 | 
						|
extern unsigned  _stklen =  10000 ;  /* Borland only */
 | 
						|
#endif
 | 
						|
 | 
						|
#define DESC_LEN      20
 | 
						|
#define CODE_LEN      4
 | 
						|
#define VALUE_LEN     6
 | 
						|
#define QUANTITY_LEN  5
 | 
						|
 | 
						|
#define DESC_POS      0
 | 
						|
#define CODE_POS      (DESC_POS + DESC_LEN)
 | 
						|
#define VALUE_POS     (CODE_POS + CODE_LEN)
 | 
						|
#define QUANTITY_POS  (VALUE_POS+ VALUE_LEN)
 | 
						|
 | 
						|
/* The carriage return and line feed characters are included. */
 | 
						|
 | 
						|
#ifdef S4UNIX
 | 
						|
#define TOTAL_LEN     (QUANTITY_POS + QUANTITY_LEN + 1)
 | 
						|
#else
 | 
						|
#define TOTAL_LEN     (QUANTITY_POS + QUANTITY_LEN + 2)
 | 
						|
#endif
 | 
						|
 | 
						|
CODE4   code_base ;
 | 
						|
DATA4  *inventory ;
 | 
						|
FIELD4 *descrip, *code, *value, *quantity ;
 | 
						|
 | 
						|
FILE4   ascii ;
 | 
						|
FILE4SEQ_READ seq_read ;
 | 
						|
 | 
						|
char     ascii_buf[TOTAL_LEN], seq_read_buf[1024] ;
 | 
						|
 | 
						|
FIELD4INFO inventory_fields[] =
 | 
						|
{
 | 
						|
{ "CODE",     'C',  4, 0 },
 | 
						|
{ "DESCRIP",  'C', 30, 0 },
 | 
						|
{ "DATE",     'D',  8, 0 },
 | 
						|
{ "VALUE",    'N',  8, 2 },
 | 
						|
{ "QUANTITY", 'N',  6, 0 },
 | 
						|
{ 0,0,0,0 }
 | 
						|
} ;
 | 
						|
 | 
						|
 | 
						|
void main()
 | 
						|
{
 | 
						|
  d4init( &code_base ) ;
 | 
						|
 | 
						|
  code_base.safety = 0 ;
 | 
						|
 | 
						|
  /* Create the data file; open the ASCII file.  */
 | 
						|
  inventory = d4create( &code_base, "INVENTOR", inventory_fields,0);
 | 
						|
  file4open( &ascii, &code_base, "inventor.asc", 0 ) ;
 | 
						|
  e4exit_test( &code_base ) ;
 | 
						|
 | 
						|
  descrip  =  d4field( inventory, "DESCRIP" ) ;
 | 
						|
  code     =  d4field( inventory, "CODE" ) ;
 | 
						|
  value    =  d4field( inventory, "VALUE" ) ;
 | 
						|
  quantity =  d4field( inventory, "QUANTITY" ) ;
 | 
						|
 | 
						|
  /* Initialize to read the ASCII file with extra fast performance. */
 | 
						|
 | 
						|
  file4seq_read_init( &seq_read, &ascii, 0, seq_read_buf,
 | 
						|
                     sizeof(seq_read_buf) ) ;
 | 
						|
 | 
						|
  for(;;)
 | 
						|
  {
 | 
						|
    unsigned len_read ;
 | 
						|
 | 
						|
    /* Read one ASCII record. */
 | 
						|
    len_read =  file4seq_read( &seq_read, ascii_buf, sizeof(ascii_buf) );
 | 
						|
 | 
						|
    if ( len_read != sizeof(ascii_buf) )  break ;
 | 
						|
 | 
						|
    /* Start the Append Operation */
 | 
						|
    d4append_start( inventory, 0 ) ;
 | 
						|
 | 
						|
    /* Assign the fields. */
 | 
						|
    f4assign_n( descrip, ascii_buf+DESC_POS, DESC_LEN ) ;
 | 
						|
    f4assign_n( code,    ascii_buf+CODE_POS, CODE_LEN ) ;
 | 
						|
 | 
						|
    f4assign_double( value, c4atod( ascii_buf+VALUE_POS, VALUE_LEN) ) ;
 | 
						|
    f4assign_double( quantity, c4atod( ascii_buf+QUANTITY_POS,
 | 
						|
                                      QUANTITY_LEN) ) ;
 | 
						|
 | 
						|
    /* Append the new record */
 | 
						|
    d4append( inventory ) ;
 | 
						|
  }
 | 
						|
 | 
						|
  d4close(inventory) ;
 | 
						|
  file4close( &ascii ) ;
 | 
						|
  d4init_undo( &code_base ) ;
 | 
						|
  mem4reset() ;
 | 
						|
 | 
						|
  exit(0) ;
 | 
						|
}
 |