campo-sirio/cb5/multi.c
alex a0f5e0898b This commit was generated by cvs2svn to compensate for changes in r975,
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
1995-02-06 15:33:45 +00:00

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