a0f5e0898b
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
213 lines
5.2 KiB
C
Executable File
213 lines
5.2 KiB
C
Executable File
/***********************************************************************\
|
|
* *
|
|
* DESCEND1.C Copyright (C) 1993 Sequiter Software Inc. *
|
|
* *
|
|
\***********************************************************************/
|
|
/* See User's Manual, page 100 */
|
|
|
|
|
|
#ifndef S4UNIX
|
|
#include "d4all.h"
|
|
#else
|
|
#include <conio.h>
|
|
#endif
|
|
|
|
#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,*address_tag,*age_tag,*date_tag;
|
|
TAG4INFO tag_info [] =
|
|
{
|
|
{"NAME","L_NAME+F_NAME",0,0,r4descending},
|
|
{"ADDRESS","ADDRESS",0,0,r4descending},
|
|
{"AGE_TAG","AGE",0,0,r4descending},
|
|
{"DATE_TAG","BIRTH_DATE",0,0,r4descending},
|
|
{0,0,0,0,0},
|
|
};
|
|
|
|
void open_data_file()
|
|
{
|
|
code_base.auto_open = 0;
|
|
code_base.safety = 0;
|
|
|
|
data_file = d4open(&code_base,"DATA1.DBF");
|
|
i4create(data_file,NULL,tag_info);
|
|
|
|
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");
|
|
address_tag = d4tag(data_file,"ADDRESS");
|
|
age_tag = d4tag(data_file,"AGE_TAG");
|
|
date_tag = d4tag(data_file,"DATE_TAG");
|
|
}
|
|
|
|
void print_records()
|
|
{
|
|
int rc,j,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;
|
|
|
|
for(rc = d4top(data_file);rc == r4success
|
|
;rc = d4skip(data_file, 1L))
|
|
{
|
|
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);
|
|
printf("-------------------------------\n");
|
|
printf("Name : %10s %10s\n"
|
|
,f_name_str,l_name_str);
|
|
printf("Address : %15s\n",address_str);
|
|
printf("Age : %3d Married : %1s\n"
|
|
,age_value,married_str);
|
|
printf("Comment: %s\n",comment_str);
|
|
printf("Amount purchased : $%5.2lf \n"
|
|
,amount_value);
|
|
printf("\n");
|
|
}
|
|
}
|
|
|
|
void print_record()
|
|
{
|
|
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);
|
|
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()
|
|
{
|
|
d4init(&code_base);
|
|
code_base.open_error = 0;
|
|
code_base.safety = 0;
|
|
|
|
open_data_file();
|
|
|
|
printf("Display records in descendingL_NAME + F_NAME order (Press ENTER)\n");
|
|
#ifdef S4UNIX
|
|
getchar() ;
|
|
#else
|
|
getch();
|
|
#endif
|
|
d4tag_select(data_file,name_tag);
|
|
print_records();
|
|
|
|
printf("Display records in descending ADDRESS order (Press ENTER)\n");
|
|
#ifdef S4UNIX
|
|
getchar() ;
|
|
#else
|
|
getch();
|
|
#endif
|
|
d4tag_select(data_file,address_tag);
|
|
print_records();
|
|
|
|
printf("Display records in descending AGE order (Press ENTER)\n");
|
|
#ifdef S4UNIX
|
|
getchar() ;
|
|
#else
|
|
getch();
|
|
#endif
|
|
d4tag_select(data_file,age_tag);
|
|
print_records();
|
|
|
|
printf("Display records in descending BIRTH_DATE order (Press ENTER)\n");
|
|
#ifdef S4UNIX
|
|
getchar() ;
|
|
#else
|
|
getch();
|
|
#endif
|
|
d4tag_select(data_file,date_tag);
|
|
print_records();
|
|
|
|
printf("Seek on L_NAME + F_NAME tag (Press ENTER)\n");
|
|
#ifdef S4UNIX
|
|
getchar() ;
|
|
#else
|
|
getch();
|
|
#endif
|
|
d4tag_select(data_file,name_tag);
|
|
d4seek(data_file,"Krammer David ");
|
|
print_record();
|
|
|
|
printf("Seek on ADDRESS tag (Press ENTER)\n");
|
|
#ifdef S4UNIX
|
|
getchar() ;
|
|
#else
|
|
getch();
|
|
#endif
|
|
d4tag_select(data_file,address_tag);
|
|
d4seek(data_file,"123 - 45 Ave ");
|
|
print_record();
|
|
|
|
printf("Seek on AGE tag (Press ENTER)\n");
|
|
#ifdef S4UNIX
|
|
getchar() ;
|
|
#else
|
|
getch();
|
|
#endif
|
|
d4tag_select(data_file,age_tag);
|
|
d4seek(data_file,"23");
|
|
print_record();
|
|
|
|
printf("Seek on DATE tag (Press ENTER)\n");
|
|
#ifdef S4UNIX
|
|
getchar() ;
|
|
#else
|
|
getch();
|
|
#endif
|
|
d4tag_select(data_file,date_tag);
|
|
d4seek(data_file,"19500101");
|
|
print_record();
|
|
|
|
d4close_all(&code_base);
|
|
d4init_undo(&code_base);
|
|
mem4reset() ;
|
|
return 0;
|
|
}
|