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
		
			
				
	
	
		
			129 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			129 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /***********************************************************************\
 | |
|  *                                                                       *
 | |
|  *   MULTI.C       Copyright (C) 1993 Sequiter Software Inc.             *
 | |
|  *                                                                       *
 | |
|  \***********************************************************************/
 | |
| /* See User's Manual, page 187 */
 | |
| 
 | |
| #include "d4all.h"
 | |
| 
 | |
| #ifdef __TURBOC__
 | |
| extern unsigned _stklen = 10000;
 | |
| #endif
 | |
| 
 | |
| CODE4 cb ;
 | |
| FIELD4 *field_name ;
 | |
| DATA4 *data_names ;
 | |
| TAG4 *tag_name ;
 | |
| 
 | |
| void add_record() ;
 | |
| void find_record() ;
 | |
| void modify_record() ;
 | |
| void list_data() ;
 | |
| 
 | |
| void main()
 | |
| {
 | |
|   int command ;
 | |
| 
 | |
|   d4init( &cb ) ;
 | |
| 
 | |
|   cb.exclusive = 0 ;
 | |
|   cb.read_only = 0 ;
 | |
|   cb.read_lock = 0 ;
 | |
|   cb.lock_attempts = -1 ;
 | |
| 
 | |
|   data_names = d4open( &cb, "NAMES" ) ;
 | |
|   e4exit_test( &cb ) ;
 | |
| 
 | |
|   field_name = d4field( data_names, "NAME" ) ;
 | |
|   tag_name = d4tag( data_names, "NAME" ) ;
 | |
| 
 | |
|   d4top( data_names ) ;
 | |
| 
 | |
|   for(;;)
 | |
|   {
 | |
|     e4set( &cb, 0 ) ;
 | |
| 
 | |
|     printf( "\n\nRecord #: %ld   Name: %s\n" 
 | |
|            ,d4recno( data_names )
 | |
|            , f4str( field_name ) ) ;
 | |
| 
 | |
|     printf( "Enter Command ('a','f','l','m' or 'x')\n" ) ;
 | |
| 
 | |
|     command =  getchar() ;
 | |
|     switch( command )
 | |
|     {
 | |
|     case 'a':
 | |
|       add_record() ;
 | |
|       break ;
 | |
| 
 | |
|     case 'f':
 | |
|       find_record() ;
 | |
|       break ;
 | |
| 
 | |
|     case 'l':
 | |
|       list_data() ;
 | |
|       break ;
 | |
| 
 | |
|     case 'm':
 | |
|       modify_record() ;
 | |
|       break ;
 | |
| 
 | |
|     case 'x':
 | |
|       d4close_all( &cb ) ;
 | |
|       exit(0) ;
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| void add_record()
 | |
| {
 | |
|   char buf[100] ;
 | |
|   printf( "Enter New Record\n" ) ;
 | |
|   scanf( "%s", buf ) ;
 | |
| 
 | |
|   d4append_start( data_names, 0 ) ;
 | |
|   f4assign( field_name, buf ) ;
 | |
|   d4append( data_names ) ;
 | |
| 
 | |
|   d4unlock( data_names ) ;
 | |
| }
 | |
| 
 | |
| void find_record()
 | |
| {
 | |
|   char buf[100] ;
 | |
|   printf( "Enter Name to Find\n" ) ;
 | |
|   scanf( "%s", buf ) ;
 | |
| 
 | |
|   d4tag_select( data_names, tag_name ) ;
 | |
|   d4seek( data_names, buf ) ;
 | |
| }
 | |
| 
 | |
| void modify_record()
 | |
| {
 | |
|   char buf[100] ;
 | |
|   printf( "Enter Replacement Record\n" ) ;
 | |
|   scanf( "%s", buf ) ;
 | |
| 
 | |
|   f4assign( field_name, buf ) ;
 | |
| 
 | |
|   d4flush( data_names ) ;
 | |
|   d4unlock( data_names ) ;
 | |
| }
 | |
| 
 | |
| void list_data()
 | |
| {
 | |
|   d4opt_start( &cb ) ;
 | |
|   d4optimize( data_names, 1 ) ;
 | |
| 
 | |
|   d4tag_select( data_names, tag_name ) ;
 | |
| 
 | |
|   for( d4top(data_names); ! d4eof(data_names)
 | |
|       ; d4skip(data_names,1) )
 | |
|     printf( "%ld %s\n", d4recno(data_names)
 | |
|            , f4str(field_name) ) ;
 | |
| 
 | |
|   d4optimize( data_names, 0 ) ;
 | |
|   d4opt_suspend( &cb ) ;
 | |
| }
 |