home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The C Users' Group Library 1994 August
/
wc-cdrom-cusersgrouplibrary-1994-08.iso
/
listings
/
v_09_10
/
9n10093a
< prev
next >
Wrap
Text File
|
1979-12-31
|
3KB
|
126 lines
/*
listing 6 - search.c (sample program)
*/
#include <stdio.h>
#include "common.h" /* shared by all files */
/*
Initialization of the tran_record file. This
would normally be done through file input.
*/
struct record tran_record[] = {
0, 0, 0.0, "zero",
1, 11, 11.1, "one",
2, 22, 22.2, "two",
3, 33, 33.3, "three",
4, 44, 44.4, "four",
};
struct field_definition definitions[] = {
"id", INT, &tran_record[0].id,
"number", INT, &tran_record[0].number,
"price", FLOAT, &tran_record[0].price,
"code", STRING, &tran_record[0].code,
"last", NULL, NULL,
};
main()
{
/* loop control */
int i;
/* holds definition type */
char user_keyword[10];
/* ascii string search key */
char user_value[100];
/* transaction_size of the transaction array */
int transaction_size;
/* calculate size of a transaction */
transaction_size =
sizeof(tran_record)/sizeof(tran_record[0]);
/* set up the test to search for integer id */
strcpy (user_value, "0");
strcpy (user_keyword, "id");
printf ("\nuser_value = %s\n", user_value);
printf ("user_keyword = %s\n", user_keyword);
if ( (type_check(definitions, tran_record,
transaction_size,
user_keyword, user_value) != SUCCEED) )
printf ("Error: search failed\n");
/* set up the test to search for integer number */
strcpy (user_value, "11");
strcpy (user_keyword, "number");
printf ("\nuser_value = %s\n", user_value);
printf ("user_keyword = %s\n", user_keyword);
if ( (type_check(definitions, tran_record,
transaction_size,
user_keyword, user_value) != SUCCEED) )
printf ("Error: search failed\n");
/* set up the test to search for float */
strcpy (user_value, "33.3");
strcpy (user_keyword, "price");
printf ("\nuser_value = %s\n", user_value);
printf ("user_keyword = %s\n", user_keyword);
if ( (type_check(definitions, tran_record,
transaction_size,
user_keyword, user_value) != SUCCEED) )
printf ("Error: search failed\n");
/* set up the test to search for string */
strcpy (user_value,"two");
strcpy (user_keyword, "code");
printf ("\nuser_value = %s\n", user_value);
printf ("user_keyword = %s\n", user_keyword);
if ( (type_check(definitions, tran_record,
transaction_size,
user_keyword, user_value) != SUCCEED) )
printf ("Error: search failed\n");
/* set up the test to return 'No match' */
strcpy (user_value, "99");
strcpy (user_keyword, "number");
printf ("\nuser_value = %s\n", user_value);
printf ("user_keyword = %s\n", user_keyword);
if ( (type_check(definitions, tran_record,
transaction_size,
user_keyword, user_value) != SUCCEED) )
printf ("Error: search failed\n");
/*
Generate invalid search,
CHAR is not define as a keyword
*/
strcpy (user_value, "99");
strcpy (user_keyword, "char");
printf ("\nuser_value = %s\n", user_value);
printf ("user_keyword = %s\n", user_keyword);
if ( (type_check(definitions, tran_record,
transaction_size,
user_keyword, user_value) != SUCCEED) )
printf ("Error: search failed\n");
exit(0);
}