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 ) ;
|
|
}
|