campo-sirio/cb5/seeker.c

155 lines
3.3 KiB
C
Raw Normal View History

/***********************************************************************\
* *
* SEEKER.C Copyright (C) 1993 Sequiter Software Inc. *
* *
\***********************************************************************/
/* See User's Manual, page 92 */
#include "d4all.h"
#ifdef __TURBOC__
extern unsigned _stklen = 10000;
#endif
CODE4 code_base;
DATA4 *data_file = 0;
FIELD4 *f_name,*l_name,*address,*age,*birth_date
,*married,*amount,*comment;
TAG4 *name_tag,*age_tag,*amount_tag
,*address_tag,*birthdate_tag;
void OpenDataFile()
{
data_file = d4open(&code_base,"DATA1.DBF");
f_name = d4field(data_file,"F_NAME");
l_name = d4field(data_file,"L_NAME");
address = d4field(data_file,"ADDRESS");
age = d4field(data_file,"AGE");
birth_date = d4field(data_file,"BIRTH_DATE");
married = d4field(data_file,"MARRIED");
amount = d4field(data_file,"AMOUNT");
comment = d4field(data_file,"COMMENT");
name_tag = d4tag(data_file,"NAME_TAG");
address_tag = d4tag(data_file,"ADDR_TAG");
age_tag = d4tag(data_file,"AGE_TAG");
birthdate_tag = d4tag(data_file,"DATE_TAG");
amount_tag = d4tag(data_file,"AMNT_TAG");
}
void seek_status(int rc,char *status)
{
switch(rc)
{
case r4success:
strcpy(status,"r4success");
break;
case r4eof:
strcpy(status,"r4eof");
break;
case r4after:
strcpy(status,"r4after");
break;
default:
strcpy(status,"other");
break;
}
}
void print_record(int rc)
{
int age_value;
double amount_value;
char f_name_str[15],l_name_str[15];
char address_str[20];
char date_str[9];
char married_str[2];
char *comment_str;
char status[15];
f4ncpy(f_name,f_name_str,sizeof(f_name_str));
f4ncpy(l_name,l_name_str,sizeof(l_name_str));
f4ncpy(address,address_str
,sizeof(address_str));
age_value = f4int(age);
amount_value = f4double(amount);
f4ncpy(birth_date,date_str,sizeof(date_str));
f4ncpy(married,married_str
,sizeof(married_str));
comment_str = f4memo_str(comment);
seek_status(rc,status);
printf("Seek status : %s\n",status);
printf("---------------------------------\n");
printf("Name : %10s %10s\n"
,f_name_str,l_name_str);
printf("Address : %15s\n",address_str);
printf("Age:%3d BirthDate:%8s Married : %1s\n"
,age_value,date_str,married_str);
printf("Comment: %s\n",comment_str);
printf("Amount purchased : $%5.2lf \n"
,amount_value);
printf("\n");
}
int main()
{
int rc;
d4init(&code_base);
OpenDataFile();
d4tag_select(data_file,address_tag);
rc = d4seek(data_file,"123 - 45 Ave ");
print_record(rc);
rc = d4seek(data_file,"12");
print_record(rc);
rc = d4seek(data_file,"12 ");
print_record(rc);
d4tag_select(data_file,name_tag);
rc = d4seek(data_file,"Krammer David ");
print_record(rc);
d4tag_select(data_file,birthdate_tag);
rc = d4seek(data_file,"19500101");
print_record(rc);
d4tag_select(data_file,amount_tag);
rc = d4seek_double(data_file,47.23);
print_record(rc);
rc = d4seek(data_file," 47.23");
print_record(rc);
d4close_all(&code_base);
d4init_undo(&code_base);
mem4reset() ;
return 0;
}