00001 /* tabRow - a row from a database or a tab-separated file held in 00002 * memory. Just a light wrapper around an array of strings. 00003 * Also some routines to convert slLines to tabRows. */ 00004 00005 #ifndef TABROW_H 00006 #define TABROW_H 00007 00008 struct tabRow 00009 /* A parsed out tableRow. */ 00010 { 00011 struct tabRow *next; 00012 int colCount; 00013 char *columns[1]; 00014 }; 00015 00016 struct tabRow *tabRowNew(int colCount); 00017 /* Return new row. */ 00018 00019 int tabRowMaxColCount(struct tabRow *rowList); 00020 /* Return largest column count */ 00021 00022 struct tabRow *tabRowByWhite(struct slName *lineList, char *fileName, 00023 boolean varCol); 00024 /* Convert lines to rows based on spaces. If varCol is TRUE then not 00025 * all rows need to have same number of columns. */ 00026 00027 struct tabRow *tabRowByChar(struct slName *lineList, char c, char *fileName, 00028 boolean varCol); 00029 /* Convert lines to rows based on character separation. If varCol is TRUE then not 00030 * all rows need to have same number of columns. */ 00031 00032 struct tabRow *tabRowByFixedOffsets(struct slName *lineList, struct slInt *offList, 00033 char *fileName); 00034 /* Return rows parsed into fixed width fields whose starts are defined by 00035 * offList. */ 00036 00037 struct tabRow *tabRowByFixedGuess(struct slName *lineList, char *fileName); 00038 /* Return rows parsed into fixed-width fields. */ 00039 00040 struct slInt *tabRowGuessFixedOffsets(struct slName *lineList, char *fileName); 00041 /* Return our best guess list of starting positions for space-padded fixed 00042 * width fields. */ 00043 00044 #endif /* TABROW_H */ 00045
1.5.2