int sub_missing_values(unsigned char **sec, float *missing1, float *missing2) { int i, j; unsigned char *p; i = code_table_5_5(sec); if (i < 1 || i > 2) return 0; j = code_table_5_1(sec); p = sec[5]; if (j == 0) { // ieee if (p[23] == 255 && p[24] == 255 && p[25] == 255 && p[26] == 255) *missing1 = UNDEFINED; else *missing1 = ieee2flt(p+23); if (i == 2) { if (p[27] == 255 && p[28] == 255 && p[29] == 255 && p[30] == 255) *missing1 = UNDEFINED; else *missing2 = ieee2flt(p+27); } } else if (j == 1) { // integer if (p[23] == 255 && p[24] == 255 && p[25] == 255 && p[26] == 255) *missing1 = UNDEFINED; else *missing1 = (float) int4(p+23); if (i == 2) { if (p[27] == 255 && p[28] == 255 && p[29] == 255 && p[30] == 255) *missing1 = UNDEFINED; else *missing2 = (float) int4(p+27); } } return i; }
/* * HEADER:-1:code_table_5.1:inv:0:code table 5.1 type of original field values */ int f_code_table_5_1(ARG0) { int p; const char *string; if (mode >= 0) { p = code_table_5_1(sec); if (p >= 0) { string = NULL; switch(p) { #include "CodeTable_5.1.dat" } if (string == NULL) sprintf(inv_out,"code table 5.1=%d", p); else sprintf(inv_out,"code table 5.1=%d %s", p, string); } } return 0; }