Example #1
0
File: main.c Project: ihilt/ref2mcg
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;
}
Example #2
0
File: t2mem.c Project: sauparna/txt
/* 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;
}