#include #include #include #define BUFS 256 #define NAMS 200 void rstr(char* str, int len) { int i; static char alf[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; for (i=0; i 2 && !strcmp(argv[1], "create")) { n = atoi(argv[2]); f = fopen("tmp.dbd", "w"); xf = fopen("tmp.dbi", "wb"); for (i=0; i 1 && !strcmp(argv[1], "all")) { f = fopen("tmp.dbd", "r"); while (fgets(line, BUFS, f) != NULL) { if (startswith(line, "ABCD")) printf("%s", line); } } else if (argc > 1 && !strcmp(argv[1], "idx")) { f = fopen("tmp.dbd", "r"); xf = fopen("tmp.dbi", "rb"); while (fread(buf, 1, 4, xf) > 0) { fread(&i, 4, 1, xf); buf[4] = '\0'; if (startswith(buf, "ABCD")) { printf("%s %d\n", buf, i); if (argc > 2 && !strcmp(argv[2], "seek")) { fseek(f, (long)i*(NAMS+8+3+1), SEEK_SET); fgets(buf, BUFS, f); printf("%s", buf); } } } } }