rendered paste body#define MXFIELD 64#define minn(x,y) ((x)<(y)?(x):(y))int in_delim(char cc, char *delim) { int i; for(i=0;i<strlen(delim);i++) if(delim[i]==cc) return 1; return 0;}char * GetFieldC(char * src, int fnum, char * delim) { static char ret[MXFIELD]; char *p, *lastp; int field = 0, ln = strlen(src); memset(ret, 0, MXFIELD); p = src; lastp = src; if(*p=='$') p++; while(p < src+ln) { if(p==(src+ln)-1) { if(field == fnum) { strncpy(ret, lastp, minn( (p - lastp + (in_delim(*p, delim)?0:1) ) , MXFIELD-1) ); return ret; } } if(in_delim(*p,delim)) { field++; if(field == fnum+1) { strncpy(ret, lastp, minn(p-lastp,MXFIELD-1)); return ret; } lastp = p+1; } p++; } return NULL;}