8#include "tpcclibConfig.h"
21static char *info[] = {
22 "Sort PET TAC data by the region name or sample time.",
24 "Usage: @P [options] filename(s)",
27 " -sort=<name|auc|time>",
28 " TACs are sorted by regional name (default), AUC, or TAC samples",
29 " (\"frames\") are sorted by increasing sample time.",
33 " @P -sort=time iea*.tac",
35 "See also: tacmatch, taclist, tacren, taccat, tacadd, tacframe",
37 "Keywords: TAC, tool, sorting, time",
56int main(
int argc,
char **argv)
58 int ai, help=0, version=0, verbose=1;
61 char *cptr, tacfile[FILENAME_MAX];
68 if(argc==1) {
tpcPrintUsage(argv[0], info, stderr);
return(1);}
72 for(ai=1; ai<argc; ai++)
if(*argv[ai]==
'-') {
74 cptr=argv[ai]+1;
if(*cptr==
'-') cptr++;
if(!*cptr)
continue;
75 if(strncasecmp(cptr,
"SORT=", 5)==0) {
77 if(strcasecmp(cptr,
"NAME")==0) {sortBy=1;
continue;}
78 if(strcasecmp(cptr,
"NAME2")==0) {sortBy=2;
continue;}
79 if(strcasecmp(cptr,
"NAME3")==0) {sortBy=3;
continue;}
80 if(strcasecmp(cptr,
"TIME")==0) {sortBy=4;
continue;}
81 if(strcasecmp(cptr,
"X")==0) {sortBy=4;
continue;}
82 if(strcasecmp(cptr,
"AUC")==0) {sortBy=5;
continue;}
84 fprintf(stderr,
"Error: invalid option '%s'\n", argv[ai]);
93 if(help==2) {
tpcHtmlUsage(argv[0], info,
"");
return(0);}
99 printf(
"sortBy := %d\n", sortBy);
103 if(sortBy==2 || sortBy==3) {
104 fprintf(stderr,
"Error: specified sort option is not yet supported.\n");
110 for(; ai<argc; ai++) {
112 strcpy(tacfile, argv[ai]);
114 if(verbose>1) printf(
"reading %s\n", tacfile);
115 else if(verbose==1) printf(
" %s\n", tacfile);
116 ret=
tacRead(&tac, tacfile, &status);
118 fprintf(stderr,
"Error (%d): %s\n", ret,
errorMsg(status.
error));
123 printf(
"tacNr := %d\n", tac.
tacNr);
124 printf(
"sampleNr := %d\n", tac.
sampleNr);
127 if(verbose>1) printf(
"sorting %s\n", tacfile);
135 fprintf(stderr,
"Error (%d): %s\n", ret,
errorMsg(status.
error));
139 if(verbose>1) printf(
"writing %s\n", tacfile);
140 FILE *fp; fp=fopen(tacfile,
"w");
142 fprintf(stderr,
"Error: cannot open file for writing (%s)\n", tacfile);
148 fprintf(stderr,
"Error (%d): %s\n", ret,
errorMsg(status.
error));
155 fprintf(stderr,
"Error: no TAC(s) were sorted.\n");
int tpcProcessStdOptions(const char *s, int *print_usage, int *print_version, int *verbose_level)
int tpcHtmlUsage(const char *program, char *text[], const char *path)
void tpcPrintBuild(const char *program, FILE *fp)
void tpcPrintUsage(const char *program, char *text[], FILE *fp)
void statusInit(TPCSTATUS *s)
char * errorMsg(tpcerror e)
void statusSet(TPCSTATUS *s, const char *func, const char *srcfile, int srcline, tpcerror error)
int verbose
Verbose level, used by statusPrint() etc.
tpcerror error
Error code.
int tacRead(TAC *d, const char *fname, TPCSTATUS *status)
char * tacFormattxt(tacformat c)
int tacWrite(TAC *tac, FILE *fp, tacformat format, int extra, TPCSTATUS *status)
int tacSortByTime(TAC *d, TPCSTATUS *status)
int tacSortByAUC(TAC *d, TPCSTATUS *status)
int tacSortByName(TAC *d, TPCSTATUS *status)
Header file for library libtpcextensions.
Header file for library libtpcift.
Header file for library libtpctac.
@ TAC_FORMAT_UNKNOWN
Unknown format.