home *** CD-ROM | disk | FTP | other *** search
- /* VTEST.C test program. */
- /* This is a simple test program which creates two index files. */
- /* 100 keys are added to each file, some keys are deleted and */
- /* then the keys are added back to the file. The keys are listed */
- /* in ascending and decending order. */
-
- #include "bplus.h"
- #include <stdio.h>
- #include <time.h>
- #include <conio.h>
-
- IX_DESC name1, name2; /* index file variables */
-
- void uplist(name) /* list keys in ascending order */
- IX_DESC *name;
- {
- ENTRY ee;
- first_key(name);
- while (next_key(&ee, name) == IX_OK) printf("%s ",ee.key);
- printf("\nPress any key to continue \n");
- getch();
- }
-
- void downlist(name) /* list keys in decending order */
- IX_DESC *name;
- {
- ENTRY ee;
- last_key(name);
- while (prev_key(&ee, name) == IX_OK) printf("%s ",ee.key);
- printf("\nPress any key to continue \n");
- getch();
- }
-
- main()
- {
- long i;
- long ltime;
- ENTRY e;
- printf("Make two index files\n");
- make_index("test1.idx",&name1, 0);
- make_index("test2.idx",&name2, 1);
- printf("Indexing 100 items in two index files:\n");
-
- /* note the time to index */
- time(<ime);
- printf("%s",ctime(<ime));
-
- /* add 100 keys to each index file */
- for (i = 0L; i < 100L; i++)
- {
- e.recptr = i;
- sprintf(e.key, "VALUE1-%2d",i);
- add_key(&e, &name1);
- sprintf(e.key, "VALUE2-%2d",i);
- add_key(&e, &name2);
- }
-
- /* print the time required for indexing the two files */
- time(<ime);
- printf("%s",ctime(<ime));
- printf("Indexing is complete\n\n");
- printf("List the keys in each index file in ascending order:\n\n");
- uplist(&name1);
- uplist(&name2);
-
- /* delete some keys and list again */
- printf("\nNow delete all keys from 20 to 90 in each file\n\n");
- for (i = 20L; i < 90L; i++)
- {
- e.recptr = i;
- sprintf(e.key, "VALUE1-%2d",i);
- delete_key(&e, &name1);
- sprintf(e.key, "VALUE2-%2d",i);
- delete_key(&e, &name2);
- }
- printf("List the keys now for each index file in ascending order:\n\n");
- uplist(&name1);
- uplist(&name2);
-
- /* add the keys back and list again */
- printf("Now add back all items from 20 to 90 to each index\n\n");
- for (i = 20L; i < 90L; i++)
- {
- e.recptr = i;
- sprintf(e.key, "VALUE1-%d",i);
- add_key(&e, &name1);
- sprintf(e.key, "VALUE2-%d",i);
- add_key(&e, &name2);
- }
- printf("List the keys for each index file again in ascending order:\n\n");
- uplist(&name1);
- uplist(&name2);
-
- /* list both files in decending order */
- printf("List the keys for each index file in decending order\n\n");
- downlist(&name1);
- downlist(&name2);
-
- /* always close all files */
- close_index(&name1);
- close_index(&name2);
- }