int main(int argc, char **argv) { CellMap ref_des_lst; char *ref_des_fname; char *ref_des; CellMap cust_pn_lst; char *cust_fname; char *cust_pn; CellMap mcg_pn_lst; char *mcg_fname; char *mcg_pn; const char *prgname; int i; int max; FILE *refdes; int arg_list = 9; prgname = esetprogname("ref2mcg"); if (argc < arg_list) eprintf("too few arguments\n%s", usage()); else if (argc > arg_list) eprintf("too many arguments\n%s", usage()); ref_des_fname = argv[1]; ref_des_col = ord(*argv[2]); cust_fname = argv[3]; cust_pn_col = ord(*argv[4]); cust_ref_des_col= ord(*argv[5]); mcg_fname = argv[6]; mcg_pn_col = ord(*argv[7]); mcg_cust_pn_col = ord(*argv[8]); csv_get_col(&ref_des_lst, ref_des_fname, -1, ref_des_col); csv_get_col(&cust_pn_lst, cust_fname, cust_ref_des_col, cust_pn_col); csv_get_col(&mcg_pn_lst, mcg_fname, mcg_cust_pn_col, mcg_pn_col); max = ref_des_lst.ncells; refdes = fopen(ref_des_fname, "rb"); for (i = 0; i < max; i++) { ref_des = ref_des_lst.cells[i].return_field; cust_pn = find_pn(ref_des, &cust_pn_lst); mcg_pn = find_pn(cust_pn, &mcg_pn_lst); print_result(refdes, ref_des, cust_pn, mcg_pn); } fclose(refdes); free_cellmap(&ref_des_lst); free_cellmap(&cust_pn_lst); free_cellmap(&mcg_pn_lst); free((void *)prgname); return 0; }
/* TODO: pass a optional parameter to name the vocab and docid * files? */ int main(int argc, char *argv[]) { TFile *tfile; FILE *fplog, *fpv, *fpd; Token *t; esetprogname(estrdup(argv[0])); fplog = fopen(strcat(estrdup(argv[0]), "-error.log"), "w"); esetstream(fplog); tfile = newTFile(); readTFile(stdin, tfile); printTFile(tfile, stdout); fpv = fopen("vocab.txt", "w"); for (int i = 0; i < tfile->ht->n; i++) { for (Node *np = tfile->ht->tab[i]; np != NULL; np = np->next) { t = (Token *)(np->data); fprintf(fpv, "%s %u\n", t->str, t->id); } } fflush(fpv); fclose(fpv); fpd = fopen("docid.txt", "w"); for (int i = 0; i < tfile->hd->n; i++) { for (Node *np = tfile->hd->tab[i]; np != NULL; np = np->next) { t = (Token *)(np->data); fprintf(fpd, "%s %u\n", t->str, t->id); } } fflush(fpd); fclose(fpd); freeTFile(tfile); fclose(fplog); return 0; }