File: export_csv.c

package info (click to toggle)
tablix2 0.3.3-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 9,816 kB
  • ctags: 2,970
  • sloc: ansic: 21,647; xml: 12,230; sh: 9,879; makefile: 762; perl: 564; yacc: 288
file content (80 lines) | stat: -rw-r--r-- 2,282 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
/* TABLIX, PGA general timetable solver                              */
/* Copyright (C) 2002-2005 Tomaz Solc                                      */

/* This program is free software; you can redistribute it and/or modify    */
/* it under the terms of the GNU General Public License as published by    */
/* the Free Software Foundation; either version 2 of the License, or       */
/* (at your option) any later version.                                     */

/* This program is distributed in the hope that it will be useful,         */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of          */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the           */
/* GNU General Public License for more details.                            */

/* You should have received a copy of the GNU General Public License       */
/* along with this program; if not, write to the Free Software             */
/* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */

/* $Id: export_csv.c,v 1.2 2005/10/29 18:26:19 avian Exp $                 */

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#include <stdio.h>
#include <errno.h>
#include <string.h>

#include "export.h"

int export_function(table *tab, moduleoption *opt, char *file)
{
	int typeid,tupleid;

	FILE *out;

	char *name;
	int resid;

	assert(tab!=NULL);

	if(file==NULL) {
		out=stdout;
	} else {
		out=fopen(file, "w");
		if(out==NULL) fatal(strerror(errno));
	}

	fprintf(out, "\"Title\",\"%s\"\n", dat_info.title);
	fprintf(out, "\"Address\",\"%s\"\n", dat_info.address);
	fprintf(out, "\"Author\",\"%s\"\n", dat_info.author);

	fprintf(out, "\"Fitness\",%d\n", tab->fitness);

	fprintf(out, "\"Event name\"");
	for(typeid=0;typeid<dat_typenum;typeid++) {
		fprintf(out, ",\"%s\"", dat_restype[typeid].type);
	}
	fprintf(out, "\n");

	assert(dat_typenum==tab->typenum);

	for(tupleid=0;tupleid<dat_tuplenum;tupleid++) {
		fprintf(out, "\"%s\"", dat_tuplemap[tupleid].name);

		for(typeid=0;typeid<dat_typenum;typeid++) {
			assert(dat_tuplenum==tab->chr[typeid].gennum);

			resid=tab->chr[typeid].gen[tupleid];
			name=dat_restype[typeid].res[resid].name;

			fprintf(out, ",\"%s\"", name);
		}

		fprintf(out, "\n");
	}

	if(out!=stdout) fclose(out);

	return 0;
}