int main (int argc,char *argv []) { int argPos, argNum = argc, ret, verbose = false; DBInt fromSelection = false, recID; char *tableName = (char *) NULL; char *expr = (char *) NULL; DBMathOperand *operand; DBObjectLIST<DBObject> *variables = new DBObjectLIST<DBObject> ("Variables"); DBObjData *data; DBObjTable *table, *saveTable, *groups = (DBObjTable *) NULL, *saveGroups; DBObjRecord *record; for (argPos = 1;argPos < argNum; ) { if (CMargTest (argv [argPos],"-a","--table")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing table name!"); return (CMfailed); } tableName = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-c","--condition")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing expression!"); return (CMfailed); } if (expr != (char *) NULL) { CMmsgPrint (CMmsgUsrError,"Expression is already set"); return (CMfailed); } expr = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-s","--selection")) { fromSelection = true; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-V","--verbose")) { verbose = true; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-h","--help")) { CMmsgPrint (CMmsgInfo,"%s [options] <input file> <output file>",CMfileName(argv[0])); CMmsgPrint (CMmsgInfo," -a,--table [table name]"); CMmsgPrint (CMmsgInfo," -c,--condition [expression]"); CMmsgPrint (CMmsgInfo," -s,--selection"); CMmsgPrint (CMmsgInfo," -V,--verbose"); CMmsgPrint (CMmsgInfo," -h,--help"); return (DBSuccess); } if ((argv [argPos][0] == '-') && ((int) strlen (argv [argPos]) > 1)) { CMmsgPrint (CMmsgUsrError,"Unknown option: %s!",argv [argPos]); return (CMfailed); } argPos++; } if (argNum > 3) { CMmsgPrint (CMmsgUsrError,"Extra arguments!"); return (CMfailed); } if (verbose) RGlibPauseOpen (argv[0]); if (expr != (char *) NULL) { operand = new DBMathOperand (expr); if (operand->Expand (variables) == DBFault) return (CMfailed); } data = new DBObjData (); if (((argNum > 1) && (strcmp (argv [1],"-") != 0) ? data->Read (argv [1]) : data->Read (stdin)) == DBFault) { delete data; delete operand; return (CMfailed); } if (tableName == (char *) NULL) tableName = DBrNItems; if ((table = data->Table (tableName)) == (DBObjTable *) NULL) { CMmsgPrint (CMmsgUsrError,"Invalid table!"); delete data; delete operand; return (CMfailed); } saveTable = new DBObjTable (*table); table->DeleteAll (); if ((strcmp (tableName,DBrNItems) == 0) && ((groups = data->Table (DBrNGroups)) != (DBObjTable *) NULL)) { saveGroups = new DBObjTable (*groups); groups->DeleteAll (); } if (expr != (char *) NULL) { if (operand->Configure (saveTable->Fields()) == DBFault) { delete data; delete operand; return (CMfailed); } for (recID = 0;recID < saveTable->ItemNum ();++recID) { record = saveTable->Item (recID); if ((ret = operand->Int (record)) == true) { if (!fromSelection) continue; if ((record->Flags () & DBObjectFlagSelected) == DBObjectFlagSelected) continue; } table->Add (new DBObjRecord (*record)); if (groups != (DBObjTable *) NULL) groups->Add (new DBObjRecord (*(saveGroups->Item (recID)))); } } else { if (fromSelection) { for (recID = 0;recID < saveTable->ItemNum ();++recID) { record = saveTable->Item (recID); if ((record->Flags () & DBObjectFlagSelected) == DBObjectFlagSelected) { table->Add (new DBObjRecord (*record)); if (groups != (DBObjTable *) NULL) groups->Add (new DBObjRecord (*(saveGroups->Item (recID)))); } } } } if (expr != (char *) NULL) delete operand; delete variables; delete saveTable; if (groups != (DBObjTable *) NULL) delete saveGroups; ret = (argNum > 2) && (strcmp (argv [2],"-") != 0) ? data->Write (argv [2]) : data->Write (stdout); delete data; if (verbose) RGlibPauseClose (); return (ret); }
int main(int argc, char *argv[]) { int argPos, argNum = argc, ret, verbose = false; DBInt recID, i, deg, min, sec, strLen; DBFloat coord; char crdStr[DBStringLength]; char *minStr, *secStr; char *tableName = (char *) NULL; char *srcFieldName = (char *) NULL; char *dstFieldName = (char *) NULL; DBObjData *data; DBObjTable *table; DBObjTableField *srcField; DBObjTableField *dstField; DBObjRecord *record; for (argPos = 1; argPos < argNum;) { if (CMargTest (argv[argPos], "-a", "--table")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing table name!"); return (CMfailed); } tableName = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-f", "--field")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing field name!"); return (CMfailed); } srcFieldName = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-r", "--rename")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing second field name!"); return (CMfailed); } dstFieldName = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-V", "--verbose")) { verbose = true; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-h", "--help")) { CMmsgPrint(CMmsgInfo, "%s [options] <input file> <output file>", CMfileName(argv[0])); CMmsgPrint(CMmsgInfo, " -a,--table [table name]"); CMmsgPrint(CMmsgInfo, " -f,--field [coord field name]"); CMmsgPrint(CMmsgInfo, " -r,--rename [output field]"); CMmsgPrint(CMmsgInfo, " -V,--verbose"); CMmsgPrint(CMmsgInfo, " -h,--help"); return (DBSuccess); } if ((argv[argPos][0] == '-') && ((int) strlen(argv[argPos]) > 1)) { CMmsgPrint(CMmsgUsrError, "Unknown option: %s!", argv[argPos]); return (CMfailed); } argPos++; } if (argNum > 3) { CMmsgPrint(CMmsgUsrError, "Extra arguments!"); return (CMfailed); } if (verbose) RGlibPauseOpen(argv[0]); if (srcFieldName == (char *) NULL) { CMmsgPrint(CMmsgUsrError, "Coordinate field is not set!"); return (CMfailed); } data = new DBObjData(); if (((argNum > 1) && (strcmp(argv[1], "-") != 0) ? data->Read(argv[1]) : data->Read(stdin)) == DBFault) { delete data; return (CMfailed); } if (tableName == (char *) NULL) tableName = DBrNItems; if ((table = data->Table(tableName)) == (DBObjTable *) NULL) { CMmsgPrint(CMmsgUsrError, "Invalid table!"); delete data; return (CMfailed); } if ((srcField = table->Field(srcFieldName)) == (DBObjTableField *) NULL) { CMmsgPrint(CMmsgUsrError, "Invalid coordinate field [%s]!", srcFieldName); delete data; return (CMfailed); } if (dstFieldName == (char *) NULL) dstFieldName = (char *) "DecimalCoord"; { if ((dstField = table->Field(dstFieldName)) == (DBObjTableField *) NULL) { dstField = new DBObjTableField(dstFieldName, DBVariableFloat, "%10.3f", sizeof(DBFloat4), false); table->AddField(dstField); } else { if (dstField->Type() != DBVariableFloat) { CMmsgPrint(CMmsgUsrError, "Invalid coordinate field type!"); delete data; return (CMfailed); } } } for (recID = 0; recID < table->ItemNum(); ++recID) { record = table->Item(recID); strncpy(crdStr, srcField->String(record), sizeof(crdStr) - 1); if ((strLen = strlen(crdStr)) > 0) { minStr = secStr = (char *) NULL; for (i = 0; i < strLen; ++i) if (crdStr[i] == ':') minStr = crdStr + i + 1; else if (crdStr[i] == '\'') secStr = crdStr + i + 1; else if (crdStr[i] == '\"') crdStr[i] = '\0'; if (sscanf(crdStr, "%d", °) != 1) continue; coord = (float) deg; if ((minStr != (char *) NULL) && (sscanf(minStr, "%d", &min) == 1)) { coord = coord + (deg > 0 ? 1.0 : -1.0) * (DBFloat) min / 60.0; if ((secStr != (char *) NULL) && (sscanf(secStr, "%d", &sec) == 1)) coord = coord + (deg > 0 ? 1.0 : -1.0) * (DBFloat) sec / 3600.0; } dstField->Float(record, coord); } } ret = (argNum > 2) && (strcmp(argv[2], "-") != 0) ? data->Write(argv[2]) : data->Write(stdout); delete data; if (verbose) RGlibPauseClose(); return (ret); }
int main(int argc, char *argv[]) { int argPos, argNum = argc, ret, verbose = false; DBInt expr, expNum = 0, tmpVar; char *tableName = (char *) NULL; char *fieldName = (char *) NULL; CMDExpression **expressions = (CMDExpression **) NULL; DBInt recID; DBObjectLIST<DBObject> *variables = new DBObjectLIST<DBObject>("Variables"); DBObjData *data; DBObjTable *table; DBObjRecord *record; for (argPos = 1; argPos < argNum;) { if (CMargTest (argv[argPos], "-a", "--table")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) < argPos) { CMmsgPrint(CMmsgUsrError, "Missing table name!"); return (CMfailed); } tableName = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) < argPos) break; continue; } if (CMargTest (argv[argPos], "-f", "--field") || CMargTest (argv[argPos], "-t", "--tmpfield")) { tmpVar = CMargTest (argv[argPos], "-t", "--tmpfield") ? true : false; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) < argPos) { CMmsgPrint(CMmsgUsrError, "Missing field name!"); return (CMfailed); } fieldName = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) < argPos) { CMmsgPrint(CMmsgUsrError, "Missing expression!"); return (CMfailed); } expressions = expNum < 1 ? (CMDExpression **) calloc(1, sizeof(CMDExpression *)) : (CMDExpression **) realloc(expressions, (expNum + 1) * sizeof(CMDExpression *)); if (expressions == (CMDExpression **) NULL) { CMmsgPrint(CMmsgSysError, "Memory Allocation error in: %s %d", __FILE__, __LINE__); return (CMfailed); } expressions[expNum] = new CMDExpression(fieldName, argv[argPos], tmpVar); if ((expressions[expNum])->Expand(variables) == DBFault) { CMmsgPrint(CMmsgUsrError, "Invalid Expression!"); return (CMfailed); } expNum++; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) < argPos) break; continue; } if (CMargTest (argv[argPos], "-V", "--verbose")) { verbose = true; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) < argPos) break; continue; } if (CMargTest (argv[argPos], "-h", "--help")) { CMmsgPrint(CMmsgInfo, "%s [options] <input file> <output file>", CMfileName(argv[0])); CMmsgPrint(CMmsgInfo, " -a,--table [table name]"); CMmsgPrint(CMmsgInfo, " -f,--field [fieldname] [expression]"); CMmsgPrint(CMmsgInfo, " -t,--tmpfield [fieldname] [expression]"); CMmsgPrint(CMmsgInfo, " -V,--verbose"); CMmsgPrint(CMmsgInfo, " -h,--help"); return (DBSuccess); } if ((argv[argPos][0] == '-') && ((int) strlen(argv[argPos]) > 1)) { CMmsgPrint(CMmsgUsrError, "Unknown option: %s!", argv[argPos]); return (CMfailed); } argPos++; } if (argNum > 3) { CMmsgPrint(CMmsgUsrError, "Extra arguments!"); return (CMfailed); } if (verbose) RGlibPauseOpen(argv[0]); data = new DBObjData(); if (((argNum > 1) && (strcmp(argv[1], "-") != 0) ? data->Read(argv[1]) : data->Read(stdin)) == DBFault) { delete data; if (argNum > 1) CMmsgPrint(CMmsgUsrError, "File error in: %s", argv[1]); return (DBFault); } if (tableName == (char *) NULL) tableName = DBrNItems; if ((table = data->Table(tableName)) == (DBObjTable *) NULL) { CMmsgPrint(CMmsgUsrError, "Invalid table!"); delete data; return (CMfailed); } for (expr = 0; expr < expNum; ++expr) if (expressions[expr]->Configure(table) == DBFault) { CMmsgPrint(CMmsgUsrError, "Invalid expression"); return (CMfailed); } for (recID = 0; recID < table->ItemNum(); ++recID) { record = table->Item(recID); for (expr = 0; expr < expNum; ++expr) expressions[expr]->Evaluate(record); } for (expr = 0; expr < expNum; ++expr) delete expressions[expr]; ret = (argNum > 2) && (strcmp(argv[2], "-") != 0) ? data->Write(argv[2]) : data->Write(stdout); free(expressions); delete data; delete variables; if (verbose) RGlibPauseClose(); return (ret); }
int main (int argc,char *argv []) { int argPos, argNum = argc, ret, verbose = false; DBInt oper = DBMathOperatorAdd; char *tableName = (char *) NULL; char *srcFieldName = (char *) NULL; char *dstFieldName = (char *) NULL; char *nextFieldName = (char *) NULL; DBObjData *data; DBObjTable *table; for (argPos = 1;argPos < argNum; ) { if (CMargTest (argv [argPos],"-a","--table")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <=argPos) { CMmsgPrint (CMmsgUsrError,"Missing table name!"); return (CMfailed); } tableName = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <=argPos) break; continue; } if (CMargTest (argv [argPos],"-o","--operation")) { int operCodes [] = { DBMathOperatorAdd, DBMathOperatorSub }; const char *operations [] = { "add", "subtract", (char *) NULL }; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <=argPos) { CMmsgPrint (CMmsgUsrError,"Missing operation!"); return (CMfailed); } if ((oper = CMoptLookup (operations,argv [argPos],true)) == DBFault) { CMmsgPrint (CMmsgUsrError,"Invalid operation!"); return (CMfailed); } oper = operCodes [oper]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <=argPos) break; continue; } if (CMargTest (argv [argPos],"-n","--next")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <=argPos) { CMmsgPrint (CMmsgUsrError,"Missing next field name!"); return (CMfailed); } nextFieldName = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <=argPos) break; continue; } if (CMargTest (argv [argPos],"-s","--source")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <=argPos) { CMmsgPrint (CMmsgUsrError,"Missing source field name!"); return (CMfailed); } srcFieldName = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <=argPos) break; continue; } if (CMargTest (argv [argPos],"-t","--target")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <=argPos) { CMmsgPrint (CMmsgUsrError,"Missing target field name!"); return (CMfailed); } dstFieldName = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <=argPos) break; continue; } if (CMargTest (argv [argPos],"-V","--verbose")) { verbose = true; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <=argPos) break; continue; } if (CMargTest (argv [argPos],"-h","--help")) { CMmsgPrint (CMmsgInfo,"%s [options] <input file> <output file>",CMprgName(argv[0])); CMmsgPrint (CMmsgInfo," -a,--table [table name]"); CMmsgPrint (CMmsgInfo," -o,--operation [add|subtract]"); CMmsgPrint (CMmsgInfo," -n,--next [next fieldname]"); CMmsgPrint (CMmsgInfo," -s,--source [source fieldname]"); CMmsgPrint (CMmsgInfo," -t,--target [target fieldname]"); CMmsgPrint (CMmsgInfo," -V,--verbose"); CMmsgPrint (CMmsgInfo," -h,--help"); return (DBSuccess); } if ((argv [argPos][0] == '-') && ((int) strlen (argv [argPos]) > 1)) { CMmsgPrint (CMmsgUsrError,"Unknown option: %s!",argv [argPos]); return (CMfailed); } argPos++; } if (srcFieldName == (char *) NULL) { CMmsgPrint (CMmsgUsrError,"Missing source field!"); return (CMfailed); } if (dstFieldName == (char *) NULL) { CMmsgPrint (CMmsgUsrError,"Missing target field!"); return (CMfailed); } if (nextFieldName == (char *) NULL) nextFieldName = RGlibNextStation; if (tableName == (char *) NULL) tableName = DBrNItems; if (argNum > 3) { CMmsgPrint (CMmsgUsrError,"Extra arguments!"); return (CMfailed); } if (verbose) RGlibPauseOpen (argv[0]); data = new DBObjData (); if (((argNum > 1) && (strcmp (argv [1],"-") != 0) ? data->Read (argv [1]) : data->Read (stdin)) == DBFault) { delete data; if (argNum > 1) printf ("File error in: %s", argv[1]); return(DBFault); } if ((table = data->Table (tableName)) == (DBObjTable *) NULL) { CMmsgPrint (CMmsgUsrError,"Invalid table!"); delete data; return (CMfailed); } switch (oper) { default: case DBMathOperatorAdd: ret = RGlibGenFuncTopoAccum (table,nextFieldName,srcFieldName,dstFieldName); break; case DBMathOperatorSub: ret = RGlibGenFuncTopoSubtract (table,nextFieldName,srcFieldName,dstFieldName); break; } if (ret == DBSuccess) ret = (argNum > 2) && (strcmp (argv [2],"-") != 0) ? data->Write (argv [2]) : data->Write (stdout); delete data; if (verbose) RGlibPauseClose (); return (ret); }
int main(int argc, char *argv[]) { int argPos, argNum = argc, ret, verbose = false; char *title = (char *) NULL, *subject = (char *) NULL; char *domain = (char *) NULL, *version = (char *) NULL; DBInt setZero = false; DBObjData *data; for (argPos = 1; argPos < argNum;) { if (CMargTest (argv[argPos], "-a", "--value")) { int valCodes[] = {true, false}; const char *values[] = {"zero", "null", (char *) NULL}; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing gridtype!"); return (CMfailed); } if ((setZero = CMoptLookup(values, argv[argPos], true)) == DBFault) { CMmsgPrint(CMmsgUsrError, "Invalid value!"); return (CMfailed); } setZero = valCodes[setZero]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-t", "--title")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing title!"); return (CMfailed); } title = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-u", "--subject")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing subject!"); return (CMfailed); } subject = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-d", "--domain")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing domain!"); return (CMfailed); } domain = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-v", "--version")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing version!"); return (CMfailed); } version = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-V", "--verbose")) { verbose = true; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-h", "--help")) { CMmsgPrint(CMmsgInfo, "%s [options] <input grid> <output grid>", CMfileName(argv[0])); CMmsgPrint(CMmsgInfo, " -a,--value [zero|null]"); CMmsgPrint(CMmsgInfo, " -t,--title [dataset title]"); CMmsgPrint(CMmsgInfo, " -u,--subject [subject]"); CMmsgPrint(CMmsgInfo, " -d,--domain [domain]"); CMmsgPrint(CMmsgInfo, " -v,--version [version]"); CMmsgPrint(CMmsgInfo, " -V,--verbose"); CMmsgPrint(CMmsgInfo, " -h,--help"); return (DBSuccess); } if ((argv[argPos][0] == '-') && (strlen(argv[argPos]) > 1)) { CMmsgPrint(CMmsgUsrError, "Unknown option: %s!", argv[argPos]); return (CMfailed); } argPos++; } if (argNum > 3) { CMmsgPrint(CMmsgUsrError, "Extra arguments!"); return (CMfailed); } if (verbose) RGlibPauseOpen(argv[0]); data = new DBObjData(); ret = (argNum > 1) && (strcmp(argv[1], "-") != 0) ? data->Read(argv[1]) : data->Read(stdin); if ((ret == DBFault) || (data->Type() != DBTypeGridContinuous)) { delete data; return (CMfailed); } if (title != (char *) NULL) data->Name(title); if (subject != (char *) NULL) data->Document(DBDocSubject, subject); if (domain != (char *) NULL) data->Document(DBDocGeoDomain, domain); if (version != (char *) NULL) data->Document(DBDocVersion, version); if ((ret = RGlibGridNoNegatives(data, setZero)) == DBSuccess) ret = (argNum > 2) && (strcmp(argv[2], "-") != 0) ? data->Write(argv[2]) : data->Write(stdout); delete data; if (verbose) RGlibPauseClose(); return (ret); }
int main(int argc, char *argv[]) { int argPos, argNum = argc, ret, verbose = false; DBInt recID; DBObjData *data; char *tableName = (char *) NULL; char *fieldIDName = (char *) NULL; char *fieldXName = (char *) NULL; char *fieldYName = (char *) NULL; DBObjTable *table; DBObjTableField *fieldID, *fieldX, *fieldY; DBObjRecord *record; DBNetworkIF *netIF; DBCoordinate coord; for (argPos = 1; argPos < argNum;) { if (CMargTest (argv[argPos], "-a", "--table")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing table name!"); return (CMfailed); } tableName = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-f", "--IDfield")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing field name!"); return (CMfailed); } fieldIDName = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-x", "--Xfield")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing field name!"); return (CMfailed); } fieldXName = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-y", "--Yfield")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing field name!"); return (CMfailed); } fieldYName = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-V", "--verbose")) { verbose = true; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-h", "--help")) { CMmsgPrint(CMmsgInfo, "%s [options] <input file> <output file>", CMfileName(argv[0])); CMmsgPrint(CMmsgInfo, " -a, --table [ [DBCells] | DBItems ]"); CMmsgPrint(CMmsgInfo, " -f, --IDfield [ [CellID] | BasinID ]"); CMmsgPrint(CMmsgInfo, " -x, --Xfield [ [CellXCoord] | MouthXCoord ]"); CMmsgPrint(CMmsgInfo, " -y, --Yfield [ [CellYCoord] | MouthYCoord ]"); CMmsgPrint(CMmsgInfo, " -V, --verbose"); CMmsgPrint(CMmsgInfo, " -h, --help"); return (DBSuccess); } if ((argv[argPos][0] == '-') && (strlen(argv[argPos]) > 1)) { CMmsgPrint(CMmsgUsrError, "Unknown option: %s!", argv[argPos]); return (CMfailed); } argPos++; } if (argNum > 3) { CMmsgPrint(CMmsgUsrError, "Extra arguments!"); return (CMfailed); } if (verbose) RGlibPauseOpen(argv[0]); if (tableName == (char *) NULL) tableName = (char *) "DBCells"; if (fieldIDName == (char *) NULL) fieldIDName = (char *) "CellID"; if (fieldXName == (char *) NULL) fieldXName = (char *) "CellXCoord"; if (fieldYName == (char *) NULL) fieldYName = (char *) "CellYCoord"; data = new DBObjData(); if (((argNum > 1) && (strcmp(argv[1], "-") != 0) ? data->Read(argv[1]) : data->Read(stdin)) == DBFault) { delete data; return (CMfailed); } if ((table = data->Table(tableName)) == (DBObjTable *) NULL) { CMmsgPrint(CMmsgUsrError, "Invalid table: %s!", tableName); delete data; return (CMfailed); } netIF = new DBNetworkIF(data); fieldID = new DBObjTableField(fieldIDName, DBTableFieldInt, (char *) "%8d", sizeof (DBInt)); fieldX = new DBObjTableField (fieldXName, DBTableFieldFloat, (char *) "%10.3f", sizeof (DBFloat4)); fieldY = new DBObjTableField (fieldYName, DBTableFieldFloat, (char *) "%10.3f", sizeof (DBFloat4)); table->AddField(fieldID); table->AddField(fieldX); table->AddField(fieldY); if (strcmp(fieldIDName, "CellID") == 0) { for (recID = 0; recID < table->ItemNum(); ++recID) { record = netIF->Cell(recID); coord = netIF->Center(record); fieldID->Int(record, recID+1); fieldX->Float(record, coord.X); fieldY->Float(record, coord.Y); } } else if (strcmp(fieldIDName, "BasinID") == 0) { for (recID = 0; recID < netIF->BasinNum(); ++recID) { record = netIF->Basin(recID); coord = netIF->Center(netIF->MouthCell(record)); fieldID->Int(record, recID+1); fieldX->Float(record,coord.X); fieldY->Float(record,coord.Y); } } else { CMmsgPrint(CMmsgUsrError, "Invalid field name: %s!", fieldIDName); delete data; return (CMfailed); } ret = (argNum > 2) && (strcmp(argv[2], "-") != 0) ? data->Write(argv[2]) : data->Write(stdout); delete data; if (verbose) RGlibPauseClose(); return (ret); }
int main(int argc, char *argv[]) { int argPos, argNum = argc, ret, verbose = false; char *expStr = (char *) NULL; char *title = (char *) NULL, *subject = (char *) NULL; char *domain = (char *) NULL, *version = (char *) NULL; int shadeSet = DBDataFlagDispModeContGreyScale; bool shrink = true, flat = false; DBObjData *data; CMDgrdThreadData *threadData = new CMDgrdThreadData(); for (argPos = 1; argPos < argNum;) { if (CMargTest (argv[argPos], "-c", "--calculate")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing expression!"); delete threadData; return (CMfailed); } if (expStr != (char *) NULL) { CMmsgPrint(CMmsgUsrError, "Expression is already specified!"); delete threadData; return (CMfailed); } expStr = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-r", "--variable")) { char *varName; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing variable name!"); delete threadData; return (CMfailed); } varName = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing expression!"); delete threadData; return (CMfailed); } if (threadData->AddExpression(varName, argv[argPos]) == CMfailed) { CMmsgPrint(CMmsgUsrError, "Invalid Expression!"); delete threadData; return (CMfailed); } if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-x", "--extent")) { int codes[] = {true, false}; const char *names[] = {"minimum", "maximum", (char *) NULL}; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing extent mode!"); delete threadData; return (CMfailed); } if ((ret = CMoptLookup(names, argv[argPos], true)) == CMfailed) { CMmsgPrint(CMmsgUsrError, "Invalid extent mode!"); delete threadData; return (CMfailed); } shrink = codes[ret]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-n", "--interpolate")) { int codes[] = {false, true}; const char *names[] = {"surface", "flat", (char *) NULL}; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing interpolation mode!"); delete threadData; return (CMfailed); } if ((ret = CMoptLookup(names, argv[argPos], true)) == CMfailed) { CMmsgPrint(CMmsgUsrError, "Invalid interpolation mode!"); delete threadData; return (CMfailed); } flat = codes[ret]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-t", "--title")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing title!"); delete threadData; return (CMfailed); } title = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-u", "--subject")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing subject!"); delete threadData; return (CMfailed); } subject = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-d", "--domain")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing domain!"); delete threadData; return (CMfailed); } domain = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-v", "--version")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing version!"); delete threadData; return (CMfailed); } version = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-s", "--shadeset")) { int shadeCodes[] = {DBDataFlagDispModeContStandard, DBDataFlagDispModeContGreyScale, DBDataFlagDispModeContBlueScale, DBDataFlagDispModeContBlueRed, DBDataFlagDispModeContElevation}; const char *shadeSets[] = {"standard", "grey", "blue", "blue-to-red", "elevation", (char *) NULL}; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing shadeset!"); delete threadData; return (CMfailed); } if ((shadeSet = CMoptLookup(shadeSets, argv[argPos], true)) == CMfailed) { CMmsgPrint(CMmsgUsrError, "Invalid shadeset!"); delete threadData; return (CMfailed); } shadeSet = shadeCodes[shadeSet]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-V", "--verbose")) { verbose = true; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-h", "--help")) { CMmsgPrint(CMmsgInfo, "%s [options] <output file>", CMfileName(argv[0])); CMmsgPrint(CMmsgInfo, " -c,--calculate [expression]"); CMmsgPrint(CMmsgInfo, " -r,--variable [variable expression]"); CMmsgPrint(CMmsgInfo, " -n,--interpolate [surface|flat]"); CMmsgPrint(CMmsgInfo, " -x,--extent [maximum minimum]"); CMmsgPrint(CMmsgInfo, " -t,--title [dataset title]"); CMmsgPrint(CMmsgInfo, " -u,--subject [subject]"); CMmsgPrint(CMmsgInfo, " -d,--domain [domain]"); CMmsgPrint(CMmsgInfo, " -v,--version [version]"); CMmsgPrint(CMmsgInfo, " -s,--shadeset [standard|grey|blue|blue-to-red|elevation]"); CMmsgPrint(CMmsgInfo, " -V,--verbose"); CMmsgPrint(CMmsgInfo, " -h,--help"); return (DBSuccess); } if ((argv[argPos][0] == '-') && ((int) strlen(argv[argPos]) > 1)) { CMmsgPrint(CMmsgUsrError, "Unknown option: %s!", argv[argPos]); delete threadData; return (CMfailed); } argPos++; } if (expStr == (char *) NULL) { CMmsgPrint(CMmsgUsrError, "Missing expression!"); delete threadData; return (CMfailed); } if (argNum > 2) { CMmsgPrint(CMmsgUsrError, "Extra arguments!"); delete threadData; return (CMfailed); } if (verbose) RGlibPauseOpen(argv[0]); if (threadData->Configure(shrink, flat, expStr) == CMfailed) { delete threadData; return (CMfailed); } if (title == (char *) NULL) title = (char *) "Grid Calculate Result"; if (subject == (char *) NULL) subject = (char *) "GridCalc"; if (domain == (char *) NULL) domain = (char *) "Non-specified"; if (version == (char *) NULL) version = (char *) "0.01pre"; if (shadeSet == DBFault) shadeSet = DBDataFlagDispModeContGreyScale; if ((data = threadData->Compute(title, _CMDgrdCalculateUserFunc)) == (DBObjData *) NULL) { delete threadData; return (CMfailed); } delete threadData; data->Document(DBDocSubject, subject); data->Document(DBDocGeoDomain, domain); data->Document(DBDocVersion, version); data->Flags(DBDataFlagDispModeContShadeSets, DBClear); data->Flags(shadeSet, DBSet); ret = (argNum > 1) && (strcmp(argv[1], "-") != 0) ? data->Write(argv[1]) : data->Write(stdout); if (verbose) RGlibPauseClose(); return (ret); }
int main (int argc,char *argv []) { int argPos, argNum = argc, ret, verbose = false; char *title = (char *) NULL, *subject = (char *) NULL; char *domain = (char *) NULL, *version = (char *) NULL; DBInt shadeSet = DBFault; DBObjData *grdData; for (argPos = 1;argPos < argNum; ) { if (CMargTest (argv [argPos],"-t","--title")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing title!"); return (CMfailed); } title = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-u","--subject")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing subject!"); return (CMfailed); } subject = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-d","--domain")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing domain!"); return (CMfailed); } domain = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-v","--version")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing version!"); return (CMfailed); } version = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-s","--shadeset")) { int shadeCodes [] = { DBDataFlagDispModeContStandard, DBDataFlagDispModeContGreyScale, DBDataFlagDispModeContBlueScale, DBDataFlagDispModeContBlueRed, DBDataFlagDispModeContElevation }; const char *shadeSets [] = { "standard","grey","blue","blue-to-red","elevation", (char *) NULL }; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing shadeset!"); return (CMfailed); } if ((shadeSet = CMoptLookup (shadeSets,argv [argPos],true)) == DBFault) { CMmsgPrint (CMmsgUsrError,"Invalid shadeset!"); return (CMfailed); } shadeSet = shadeCodes [shadeSet]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-V","--verbose")) { verbose = true; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-h","--help")) { CMmsgPrint (CMmsgInfo,"%s [options] <input netcdf> <output data>",CMfileName(argv[0])); CMmsgPrint (CMmsgInfo," -t,--title [dataset title]"); CMmsgPrint (CMmsgInfo," -u,--subject [subject]"); CMmsgPrint (CMmsgInfo," -d,--domain [domain]"); CMmsgPrint (CMmsgInfo," -v,--version [version]"); CMmsgPrint (CMmsgInfo," -s,--shadeset [standard|grey|blue|blue-to-red|elevation]"); CMmsgPrint (CMmsgInfo," -V,--verbose"); CMmsgPrint (CMmsgInfo," -h,--help"); return (DBSuccess); } if ((argv [argPos][0] == '-') && (strlen (argv [argPos]) > 1)) { CMmsgPrint (CMmsgUsrError,"Unknown option: %s!",argv [argPos]); return (CMfailed); } argPos++; } if (argNum < 2) { CMmsgPrint (CMmsgUsrError,"Missing input file"); return (CMfailed); } if (argNum > 3) { CMmsgPrint (CMmsgUsrError,"Extra arguments!"); return (CMfailed); } grdData = new DBObjData ("Noname",DBTypeGridContinuous); ret = DBImportNetCDF (grdData,argv[1]); if (title != (char *) NULL) grdData->Name (title); if (subject != (char *) NULL) grdData->Document (DBDocSubject,subject); if (domain != (char *) NULL) grdData->Document (DBDocGeoDomain,domain); if (version != (char *) NULL) grdData->Document (DBDocVersion,version); if (shadeSet != DBFault) { grdData->Flags (DBDataFlagDispModeContShadeSets,DBClear); grdData->Flags (shadeSet,DBSet); } ret = (argNum > 2) && (strcmp (argv [2],"-") != 0) ? grdData->Write (argv [2]) : grdData->Write (stdout); delete grdData; return (ret); }
int main(int argc, char *argv[]) { int argPos, argNum = argc, ret, verbose = false; DBInt recID; int deg, min, sec; char coordStr[DBStringLength]; char *tableName = (char *) NULL; char *fieldName = (char *) NULL; char *degFieldName = (char *) NULL; char *minFieldName = (char *) NULL; char *secFieldName = (char *) NULL; DBObjData *data; DBObjTable *table; DBObjTableField *dstField; DBObjTableField *degField = (DBObjTableField *) NULL; DBObjTableField *minField = (DBObjTableField *) NULL; DBObjTableField *secField = (DBObjTableField *) NULL; DBObjRecord *record; for (argPos = 1; argPos < argNum;) { if (CMargTest (argv[argPos], "-a", "--table")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing table name!"); return (CMfailed); } tableName = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-f", "--field")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing field name!"); return (CMfailed); } fieldName = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-d", "--degree")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing degree field name!"); return (CMfailed); } degFieldName = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-m", "--minute")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing minutefield name!"); return (CMfailed); } minFieldName = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-s", "--second")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing second field name!"); return (CMfailed); } secFieldName = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-V", "--verbose")) { verbose = true; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-h", "--help")) { CMmsgPrint(CMmsgInfo, "%s [options] <input file> <output file>", CMfileName(argv[0])); CMmsgPrint(CMmsgInfo, " -a,--table [table name]"); CMmsgPrint(CMmsgInfo, " -f,--field [field name]"); CMmsgPrint(CMmsgInfo, " -d,--degree [degree field]"); CMmsgPrint(CMmsgInfo, " -m,--minute [minute field]"); CMmsgPrint(CMmsgInfo, " -s,--second [secon field]"); CMmsgPrint(CMmsgInfo, " -V,--verbose"); CMmsgPrint(CMmsgInfo, " -h,--help"); return (DBSuccess); } if ((argv[argPos][0] == '-') && ((int) strlen(argv[argPos]) > 1)) { CMmsgPrint(CMmsgUsrError, "Unknown option: %s!", argv[argPos]); return (CMfailed); } argPos++; } if (argNum > 3) { CMmsgPrint(CMmsgUsrError, "Extra arguments!"); return (CMfailed); } if (verbose) RGlibPauseOpen(argv[0]); data = new DBObjData(); if (((argNum > 1) && (strcmp(argv[1], "-") != 0) ? data->Read(argv[1]) : data->Read(stdin)) == DBFault) { delete data; return (CMfailed); } if (tableName == (char *) NULL) tableName = DBrNItems; if ((table = data->Table(tableName)) == (DBObjTable *) NULL) { CMmsgPrint(CMmsgUsrError, "Invalid table!"); delete data; return (CMfailed); } if (degFieldName != (char *) NULL) { if ((degField = table->Field(degFieldName)) == (DBObjTableField *) NULL) { CMmsgPrint(CMmsgUsrError, "Invalid degree field [%s]!", degFieldName); delete data; return (CMfailed); } } if (minFieldName != (char *) NULL) { if ((minField = table->Field(minFieldName)) == (DBObjTableField *) NULL) { CMmsgPrint(CMmsgUsrError, "Invalid min field [%s]!", minFieldName); delete data; return (CMfailed); } } if (secFieldName != (char *) NULL) { if (minField == (DBObjTableField *) NULL) { CMmsgPrint(CMmsgUsrError, "Minute field is not set!"); delete data; return (CMfailed); } if ((secField = table->Field(secFieldName)) == (DBObjTableField *) NULL) { CMmsgPrint(CMmsgUsrError, "Invalid second field [%s]", secFieldName); delete data; return (CMfailed); } } if (fieldName == (char *) NULL) fieldName = (char *) "Coord[ddd:mm\'ss\"]"; if ((dstField = table->Field(fieldName)) == (DBObjTableField *) NULL) { dstField = new DBObjTableField(fieldName, DBTableFieldString, "%s", 16, false); table->AddField(dstField); } for (recID = 0; recID < table->ItemNum(); ++recID) { record = table->Item(recID); if ((degField == (DBObjTableField *) NULL) || ((deg = degField->Int(record)) == degField->IntNoData())) strcpy(coordStr, ""); else if ((minField == (DBObjTableField *) NULL) || ((min = minField->Int(record)) == minField->IntNoData())) sprintf(coordStr, "%4d", deg); else if ((secField == (DBObjTableField *) NULL) || ((sec = secField->Int(record)) == secField->IntNoData())) sprintf(coordStr, "%4d:%02d", deg, min); else sprintf(coordStr, "%4d:%02d\'%02d\"", deg, min, sec); dstField->String(record, coordStr); } ret = (argNum > 2) && (strcmp(argv[2], "-") != 0) ? data->Write(argv[2]) : data->Write(stdout); delete data; if (verbose) RGlibPauseClose(); return (ret); }
int main(int argc, char* argv[]) { int argPos, argNum = argc, ret, verbose = false; int layerID; int shadeSet = DBDataFlagDispModeContGreyScale; bool changeShadeSet = false; DBObjData *dbData; DBGridIF *gridIF; class RenameCLS { public: DBInt LayerID; char *LayerName; RenameCLS *Next; RenameCLS (DBInt layerID, char * layerName) { LayerID = layerID; LayerName = layerName; Next = (RenameCLS *) NULL; } void AddLink (RenameCLS *renameCLS) { if (Next == (RenameCLS *) NULL) Next = renameCLS; else Next->AddLink (renameCLS); } void DeleteLink () { if (Next != (RenameCLS *) NULL) { Next->DeleteLink (); delete Next; } } void RenameLayer (DBGridIF *gridIF) { DBObjRecord *layerRec; if ((layerRec = gridIF->Layer (LayerID - 1)) != (DBObjRecord *) NULL) gridIF->RenameLayer (layerRec,LayerName); if (Next != (RenameCLS *) NULL) Next->RenameLayer (gridIF); } } *renameCLS = (RenameCLS *) NULL; for (argPos = 1;argPos < argNum; ) { if (CMargTest (argv [argPos],"-r","--rename")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing layerID!"); return (CMfailed); } if (sscanf (argv[argPos],"%d",&layerID) != 1) { CMmsgPrint (CMmsgUsrError,"Invalid layerID!"); if (renameCLS != (RenameCLS *) NULL) { renameCLS->DeleteLink (); delete renameCLS; } return (CMfailed); } if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing layername!"); if (renameCLS != (RenameCLS *) NULL) { renameCLS->DeleteLink (); delete renameCLS; } return (CMfailed); } if (renameCLS == (RenameCLS *) NULL) renameCLS = new RenameCLS (layerID,argv [argPos]); else renameCLS->AddLink (new RenameCLS (layerID,argv [argPos])); if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-s","--shadeset")) { int shadeCodes [] = { DBDataFlagDispModeContStandard, DBDataFlagDispModeContGreyScale, DBDataFlagDispModeContBlueScale, DBDataFlagDispModeContBlueRed, DBDataFlagDispModeContElevation }; const char *shadeSets [] = { "standard","grey","blue","blue-to-red","elevation", (char *) NULL }; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing shadeset!"); return (CMfailed); } if ((shadeSet = CMoptLookup (shadeSets,argv [argPos],true)) == CMfailed) { CMmsgPrint (CMmsgUsrError,"Invalid shadeset!"); return (CMfailed); } shadeSet = shadeCodes [shadeSet]; changeShadeSet = true; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-V","--verbose")) { verbose = true; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-h","--help")) { CMmsgPrint (CMmsgInfo,"%s [options] <input grid> <output grid>",CMprgName(argv[0])); CMmsgPrint (CMmsgInfo," -r,--rename [layerID layerName]"); CMmsgPrint (CMmsgInfo," -s,--shadeset [standard|grey|blue|blue-to-red|elevation]"); CMmsgPrint (CMmsgInfo," -V,--verbose"); CMmsgPrint (CMmsgInfo," -h,--help"); return (DBSuccess); } if ((argv [argPos][0] == '-') && (strlen (argv [argPos]) > 1)) { CMmsgPrint (CMmsgUsrError,"Unknown option: %s!",argv [argPos]); if (renameCLS != (RenameCLS *) NULL) { renameCLS->DeleteLink (); delete renameCLS; } return (CMfailed); } argPos++; } if (argNum > 3) { CMmsgPrint (CMmsgUsrError,"Extra arguments!"); if (renameCLS != (RenameCLS *) NULL) { renameCLS->DeleteLink (); delete renameCLS; } return (CMfailed); } if (verbose) RGlibPauseOpen (argv[0]); dbData = new DBObjData (); ret = (argNum > 1) && (strcmp (argv [1],"-") != 0) ? dbData->Read (argv [1]) : dbData->Read (stdin); if ((ret == DBFault) || ((dbData->Type () != DBTypeGridContinuous) && (dbData->Type () != DBTypeGridDiscrete))) { delete dbData; if (renameCLS != (RenameCLS *) NULL) { renameCLS->DeleteLink (); delete renameCLS; } return (CMfailed); } gridIF = new DBGridIF (dbData); if (renameCLS != (RenameCLS *) NULL) renameCLS->RenameLayer (gridIF); if (changeShadeSet && (dbData->Type () == DBTypeGridContinuous)) { dbData->Flags (DBDataFlagDispModeContShadeSets,DBClear); dbData->Flags (shadeSet, DBSet); } ret = (argNum > 2) && (strcmp (argv [2],"-") != 0) ? dbData->Write (argv [2]) : dbData->Write (stdout); if (renameCLS != (RenameCLS *) NULL) { renameCLS->DeleteLink (); delete renameCLS; } delete gridIF; delete dbData; if (verbose) RGlibPauseClose (); return (ret); }
int main(int argc, char *argv[]) { int argPos, argNum = argc, ret, fieldNum = 0, verbose = false; char *tableName = (char *) NULL; char *title = (char *) NULL, *subject = (char *) NULL; char *domain = (char *) NULL, *version = (char *) NULL; DBObjData *data; DBObjectLIST<DBObjTableField> *fieldList; DBObjTable *table; DBObjTableField *fieldPTR; CMDtblSortField *fields = (CMDtblSortField *) NULL; for (argPos = 1; argPos < argNum;) { if (CMargTest (argv[argPos], "-a", "--table")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing table name!"); if (fields != (CMDtblSortField *) NULL) free(fields); return (CMfailed); } tableName = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-A", "--ascending")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing sort field!"); if (fields != (CMDtblSortField *) NULL) free(fields); return (CMfailed); } if ((fields = (CMDtblSortField *) realloc(fields, (fieldNum + 1) * sizeof(CMDtblSortField))) == (CMDtblSortField *) NULL) { CMmsgPrint(CMmsgSysError, "Memory reallocation error in: %s, %n", __FILE__, __LINE__); return (CMfailed); } fields[fieldNum].FieldName(argv[argPos]); fields[fieldNum].Ascending(true); fieldNum++; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-D", "--descending")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing selection mode!"); if (fields != (CMDtblSortField *) NULL) free(fields); return (CMfailed); } if ((fields = (CMDtblSortField *) realloc(fields, (fieldNum + 1) * sizeof(CMDtblSortField))) == (CMDtblSortField *) NULL) { CMmsgPrint(CMmsgSysError, "Memory reallocation error in: %s, %n", __FILE__, __LINE__); return (CMfailed); } fields[fieldNum].FieldName(argv[argPos]); fields[fieldNum].Ascending(false); fieldNum++; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-t", "--title")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing title!"); return (CMfailed); } title = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-u", "--subject")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing subject!"); return (CMfailed); } subject = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-d", "--domain")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing domain!"); return (CMfailed); } domain = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-v", "--version")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing version!"); return (CMfailed); } version = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-V", "--verbose")) { verbose = true; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-h", "--help")) { CMmsgPrint(CMmsgInfo, "%s [options] <input file> <output file>", CMfileName(argv[0])); CMmsgPrint(CMmsgInfo, " -a,--table [ table name ]"); CMmsgPrint(CMmsgInfo, " -A,--ascending [ fieldname ]"); CMmsgPrint(CMmsgInfo, " -D,--descending [ fieldname ]"); CMmsgPrint(CMmsgInfo, " -t,--title [dataset title]"); CMmsgPrint(CMmsgInfo, " -u,--subject [subject]"); CMmsgPrint(CMmsgInfo, " -d,--domain [domain]"); CMmsgPrint(CMmsgInfo, " -v,--version [version]"); CMmsgPrint(CMmsgInfo, " -V,--verbose"); CMmsgPrint(CMmsgInfo, " -h,--help"); if (fields != (CMDtblSortField *) NULL) free(fields); return (DBSuccess); } if ((argv[argPos][0] == '-') && ((int) strlen(argv[argPos]) > 1)) { CMmsgPrint(CMmsgUsrError, "Unknown option: %s!", argv[argPos]); if (fields != (CMDtblSortField *) NULL) free(fields); return (CMfailed); } argPos++; } if (argNum > 3) { CMmsgPrint(CMmsgUsrError, "Extra arguments!"); if (fields != (CMDtblSortField *) NULL) free(fields); return (CMfailed); } if (verbose) RGlibPauseOpen(argv[0]); data = new DBObjData(); if (((argNum > 1) && (strcmp(argv[1], "-") != 0) ? data->Read(argv[1]) : data->Read(stdin)) == DBFault) { if (fields != (CMDtblSortField *) NULL)free(fields); delete data; return (CMfailed); } if (title != (char *) NULL) data->Name(title); if (subject != (char *) NULL) data->Document(DBDocSubject, subject); if (domain != (char *) NULL) data->Document(DBDocGeoDomain, domain); if (version != (char *) NULL) data->Document(DBDocVersion, version); if (tableName == (char *) NULL) tableName = DBrNItems; if ((table = data->Table(tableName)) == (DBObjTable *) NULL) { CMmsgPrint(CMmsgUsrError, "Invalid table!"); if (fields != (CMDtblSortField *) NULL) free(fields); delete data; return (CMfailed); } if (fields != (CMDtblSortField *) NULL) { DBInt fieldID; fieldList = new DBObjectLIST<DBObjTableField>("Fields"); for (fieldID = 0; fieldID < fieldNum; ++fieldID) { if ((fieldPTR = table->Field(fields[fieldID].FieldName())) == (DBObjTableField *) NULL) { CMmsgPrint(CMmsgUsrError, "Invalid field: %s!", fields[fieldID].FieldName()); free(fields); return (CMfailed); } if (fields[fieldID].Ascending()) fieldPTR->Flags(DBObjectFlagSortReversed, DBClear); else fieldPTR->Flags(DBObjectFlagSortReversed, DBSet); fieldList->Add(new DBObjTableField(*fieldPTR)); } table->ListSort(fieldList); table->ItemSort(); delete fieldList; free(fields); } ret = (argNum > 2) && (strcmp(argv[2], "-") != 0) ? data->Write(argv[2]) : data->Write(stdout); delete data; if (verbose) RGlibPauseClose(); return (ret); }
int main(int argc, char *argv[]) { int argPos, argNum = argc, ret, verbose = false; char *title = (char *) NULL, *subject = (char *) NULL; char *domain = (char *) NULL, *version = (char *) NULL; DBInt shadeSet = DBFault; DBInt gridType = DBFault; DBObjData *data; for (argPos = 1; argPos < argNum;) { if (CMargTest (argv[argPos], "-t", "--title")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing title!"); return (CMfailed); } title = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-u", "--subject")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing subject!"); return (CMfailed); } subject = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-d", "--domain")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing domain!"); return (CMfailed); } domain = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-v", "--version")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing version!"); return (CMfailed); } version = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-y", "--type")) { int typeCodes[] = {DBTypeGridContinuous, DBTypeGridDiscrete}; const char *types[] = {"continuous", "discrete", (char *) NULL}; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing gridtype!"); return (CMfailed); } if ((gridType = CMoptLookup(types, argv[argPos], true)) == CMfailed) { CMmsgPrint(CMmsgUsrError, "Invalid grid type!"); return (CMfailed); } gridType = typeCodes[gridType]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-s", "--shadeset")) { int shadeCodes[] = {DBDataFlagDispModeContStandard, DBDataFlagDispModeContGreyScale, DBDataFlagDispModeContBlueScale, DBDataFlagDispModeContBlueRed, DBDataFlagDispModeContElevation}; const char *shadeSets[] = {"standard", "grey", "blue", "blue-to-red", "elevation", (char *) NULL}; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing shadeset!"); return (CMfailed); } if ((shadeSet = CMoptLookup(shadeSets, argv[argPos], true)) == CMfailed) { CMmsgPrint(CMmsgUsrError, "Invalid shadeset!"); return (CMfailed); } shadeSet = shadeCodes[shadeSet]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-V", "--verbose")) { verbose = true; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-h", "--help")) { CMmsgPrint(CMmsgInfo, "%s [options] <dm file> <rgis file>", CMfileName(argv[0])); CMmsgPrint(CMmsgInfo, " -t,--title [dataset title]"); CMmsgPrint(CMmsgInfo, " -u,--subject [subject]"); CMmsgPrint(CMmsgInfo, " -d,--domain [domain]"); CMmsgPrint(CMmsgInfo, " -v,--version [version]"); CMmsgPrint(CMmsgInfo, " -y,--type [continuous|discrete]"); CMmsgPrint(CMmsgInfo, " -s,--shadeset [standard|grey|blue|blue-to-red|elevation]"); CMmsgPrint(CMmsgInfo, " -V,--verbose"); CMmsgPrint(CMmsgInfo, " -h,--help"); return (DBSuccess); } if ((argv[argPos][0] == '-') && (strlen(argv[argPos]) > 1)) { CMmsgPrint(CMmsgUsrError, "Unknown option: %s!", argv[argPos]); return (CMfailed); } argPos++; } if (argNum > 3) { CMmsgPrint(CMmsgUsrError, "Extra arguments!"); return (CMfailed); } if (verbose) RGlibPauseOpen(argv[0]); if (title == (char *) NULL) { CMmsgPrint(CMmsgUsrError, "Title is not set!"); return (CMfailed); } if (subject == (char *) NULL) subject = (char *) "Default Subject"; if (domain == (char *) NULL) domain = (char *) "Default Domain"; if (version == (char *) NULL) version = (char *) "0.01pre"; if (gridType == DBFault) gridType = DBTypeGridContinuous; data = new DBObjData(title, gridType); ret = (argNum > 1) && (strcmp(argv[1], "-") != 0) ? DBImportDMGrid(data, argv[1]) : DBImportDMGrid(data, stdin); if (ret == DBFault) { delete data; return (DBFault); } data->Document(DBDocSubject, subject); data->Document(DBDocGeoDomain, domain); data->Document(DBDocVersion, version); if (shadeSet != DBFault) { data->Flags(DBDataFlagDispModeContShadeSets, DBClear); data->Flags(shadeSet, DBSet); } ret = (argNum > 2) && (strcmp(argv[2], "-") != 0) ? data->Write(argv[2]) : data->Write(stdout); delete data; if (verbose) RGlibPauseClose(); return (ret); }
int main(int argc, char *argv[]) { int argPos, argNum = argc, ret, verbose = false; char *title = (char *) NULL, *subject = (char *) NULL; char *domain = (char *) NULL, *version = (char *) NULL; char *fieldName = (char *) NULL; DBObjData *data; for (argPos = 1; argPos < argNum;) { if (CMargTest (argv[argPos], "-f", "--field")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing symbol field!"); return (CMfailed); } fieldName = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-t", "--title")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing title!"); return (CMfailed); } title = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-u", "--subject")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing subject!"); return (CMfailed); } subject = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-d", "--domain")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing domain!"); return (CMfailed); } domain = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-v", "--version")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing version!"); return (CMfailed); } version = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-V", "--verbose")) { verbose = true; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-h", "--help")) { CMmsgPrint(CMmsgInfo, "%s [options] <input symbol cover> <output symbol cover>", CMfileName(argv[0])); CMmsgPrint(CMmsgInfo, " -f,--fiedl [field]"); CMmsgPrint(CMmsgInfo, " -t,--title [dataset title]"); CMmsgPrint(CMmsgInfo, " -u,--subject [subject]"); CMmsgPrint(CMmsgInfo, " -d,--domain [domain]"); CMmsgPrint(CMmsgInfo, " -v,--version [version]"); CMmsgPrint(CMmsgInfo, " -V,--verbose"); CMmsgPrint(CMmsgInfo, " -h,--help"); return (DBSuccess); } if ((argv[argPos][0] == '-') && (strlen(argv[argPos]) > 1)) { CMmsgPrint(CMmsgUsrError, "Unknown option: %s!", argv[argPos]); return (CMfailed); } argPos++; } if (argNum > 3) { CMmsgPrint(CMmsgUsrError, "Extra arguments!"); return (CMfailed); } if (verbose) RGlibPauseOpen(argv[0]); if (fieldName == (char *) NULL) { CMmsgPrint(CMmsgUsrError, "Field name is not specified"); return (CMfailed); } data = new DBObjData(); ret = (argNum > 1) && (strcmp(argv[1], "-") != 0) ? data->Read(argv[1]) : data->Read(stdin); if ((ret == DBFault) || ((data->Type() != DBTypeVectorPoint) && (data->Type() != DBTypeVectorLine) && (data->Type() != DBTypeVectorPolygon) && (data->Type() != DBTypeGridDiscrete))) { delete data; return (CMfailed); } if (title != (char *) NULL) data->Name(title); if (subject != (char *) NULL) data->Document(DBDocSubject, subject); if (domain != (char *) NULL) data->Document(DBDocGeoDomain, domain); if (version != (char *) NULL) data->Document(DBDocVersion, version); if ((ret = RGlibGenFuncSymbolField(data, fieldName)) == DBSuccess) ret = (argNum > 2) && (strcmp(argv[2], "-") != 0) ? data->Write(argv[2]) : data->Write(stdout); delete data; if (verbose) RGlibPauseClose(); return (ret); }
int main(int argc, char *argv[]) { int argPos, argNum = argc, ret, verbose = false; char *title = (char *) NULL, *subject = (char *) NULL; char *domain = (char *) NULL, *version = (char *) NULL; DBObjData *netData; DBNetworkIF *netIF; for (argPos = 1; argPos < argNum;) { if (CMargTest (argv[argPos], "-t", "--title")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing title!"); return (CMfailed); } title = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-u", "--subject")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing subject!"); return (CMfailed); } subject = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-d", "--domain")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing domain!"); return (CMfailed); } domain = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-v", "--version")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing version!"); return (CMfailed); } version = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-V", "--verbose")) { verbose = true; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-h", "--help")) { CMmsgPrint(CMmsgInfo, "%s [options] <input network> <output network>", CMfileName(argv[0])); CMmsgPrint(CMmsgInfo, " -t,--title [dataset title]"); CMmsgPrint(CMmsgInfo, " -u,--subject [subject]"); CMmsgPrint(CMmsgInfo, " -d,--domain [domain]"); CMmsgPrint(CMmsgInfo, " -v,--version [version]"); CMmsgPrint(CMmsgInfo, " -V,--verbose"); CMmsgPrint(CMmsgInfo, " -h,--help"); return (DBSuccess); } if ((argv[argPos][0] == '-') && (strlen(argv[argPos]) > 1)) { CMmsgPrint(CMmsgUsrError, "Unknown option: %s!", argv[argPos]); return (CMfailed); } argPos++; } if (argNum > 3) { CMmsgPrint(CMmsgUsrError, "Extra arguments!"); return (CMfailed); } if (verbose) RGlibPauseOpen(argv[0]); netData = new DBObjData(); ret = (argNum > 1) && (strcmp(argv[1], "-") != 0) ? netData->Read(argv[1]) : netData->Read(stdin); if (netData->Type() != DBTypeNetwork) { CMmsgPrint(CMmsgUsrError, "Not a network input!"); delete netData; return (CMfailed); } if (title != (char *) NULL) netData->Name(title); if (subject != (char *) NULL) netData->Document(DBDocSubject, subject); if (domain != (char *) NULL) netData->Document(DBDocGeoDomain, domain); if (version != (char *) NULL) netData->Document(DBDocVersion, version); netIF = new DBNetworkIF(netData); ret = netIF->Trim(); delete netIF; if (ret == DBSuccess) ret = (argNum > 2) && (strcmp(argv[2], "-") != 0) ? netData->Write(argv[2]) : netData->Write(stdout); delete netData; if (verbose) RGlibPauseClose(); return (ret); }
int main(int argc, char *argv[]) { int argPos, argNum = argc, ret, verbose = false; DBInt fromSelection = false, selectMode = true, recID; char *tableName = (char *) NULL; char *expr = (char *) NULL; DBMathOperand *operand; DBObjectLIST<DBObject> *variables = new DBObjectLIST<DBObject>("Variables"); DBObjData *data; DBObjTable *table; DBObjRecord *record; for (argPos = 1; argPos < argNum;) { if (CMargTest (argv[argPos], "-a", "--table")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing table name!"); return (CMfailed); } tableName = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-c", "--condition")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing expression!"); return (CMfailed); } if (expr != (char *) NULL) { CMmsgPrint(CMmsgUsrError, "Expression is already set"); return (CMfailed); } expr = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-f", "--from")) { int modeCodes[] = {false, true}; const char *modes[] = {"all", "selection", (char *) NULL}; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing selection mode!"); return (CMfailed); } if ((fromSelection = CMoptLookup(modes, argv[argPos], true)) == DBFault) { CMmsgPrint(CMmsgUsrError, "Invalid selection mode!"); return (CMfailed); } fromSelection = modeCodes[fromSelection]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-m", "--mode")) { int modeCodes[] = {true, false}; const char *modes[] = {"select", "unselect", (char *) NULL}; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing selection mode!"); return (CMfailed); } if ((selectMode = CMoptLookup(modes, argv[argPos], true)) == DBFault) { CMmsgPrint(CMmsgUsrError, "Invalid selection mode!"); return (CMfailed); } selectMode = modeCodes[selectMode]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-V", "--verbose")) { verbose = true; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-h", "--help")) { CMmsgPrint(CMmsgInfo, "%s [options] <input file> <output file>", CMfileName(argv[0])); CMmsgPrint(CMmsgInfo, " -a,--table [ table name ]"); CMmsgPrint(CMmsgInfo, " -c,--condition [ fieldname expression ]"); CMmsgPrint(CMmsgInfo, " -f,--from [ [all] | selection ]"); CMmsgPrint(CMmsgInfo, " -m,--mode [ [select] | unselect ]"); CMmsgPrint(CMmsgInfo, " -V,--verbose"); CMmsgPrint(CMmsgInfo, " -h,--help"); return (DBSuccess); } if ((argv[argPos][0] == '-') && ((int) strlen(argv[argPos]) > 1)) { CMmsgPrint(CMmsgUsrError, "Unknown option: %s!", argv[argPos]); return (CMfailed); } argPos++; } if (argNum > 3) { CMmsgPrint(CMmsgUsrError, "Extra arguments!"); return (CMfailed); } if (verbose) RGlibPauseOpen(argv[0]); if (expr != (char *) NULL) { operand = new DBMathOperand(expr); if (operand->Expand(variables) == DBFault) return (CMfailed); } data = new DBObjData(); if (((argNum > 1) && (strcmp(argv[1], "-") != 0) ? data->Read(argv[1]) : data->Read(stdin)) == DBFault) { delete data; delete operand; return (CMfailed); } if (tableName == (char *) NULL) tableName = DBrNItems; if ((table = data->Table(tableName)) == (DBObjTable *) NULL) { CMmsgPrint(CMmsgUsrError, "Invalid table!"); delete data; delete operand; return (CMfailed); } if (expr != (char *) NULL) { if (operand->Configure(table->Fields()) == DBFault) { delete data; delete operand; return (CMfailed); } for (recID = 0; recID < table->ItemNum(); ++recID) { record = table->Item(recID); if (fromSelection && ((record->Flags() & DBObjectFlagSelected) != DBObjectFlagSelected)) continue; if ((ret = operand->Int(record)) == true) record->Flags(DBObjectFlagSelected, selectMode ? DBSet : DBClear); else if (selectMode) record->Flags(DBObjectFlagSelected, DBClear); } } else { for (recID = 0; recID < table->ItemNum(); ++recID) { record = table->Item(recID); if (fromSelection && ((record->Flags() & DBObjectFlagSelected) != DBObjectFlagSelected)) continue; record->Flags(DBObjectFlagSelected, selectMode ? DBSet : DBClear); } } ret = (argNum > 2) && (strcmp(argv[2], "-") != 0) ? data->Write(argv[2]) : data->Write(stdout); if (expr != (char *) NULL) delete operand; delete data; delete variables; if (verbose) RGlibPauseClose(); return (ret); }
int main(int argc, char *argv[]) { int argPos, argNum = argc, ret, verbose = false; DBInt recID, mode = DBTimeStepYear; char *tableName = (char *) NULL; char *srcName = (char *) NULL; char *dstName = (char *) NULL; DBObjData *data; DBObjTable *table; DBObjTableField *srcField; DBObjTableField *dstField = (DBObjTableField *) NULL; DBDate date; DBObjRecord *record; for (argPos = 1; argPos < argNum;) { if (CMargTest (argv[argPos], "-a", "--table")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing table name!"); return (CMfailed); } tableName = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-f", "--field")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing field name!"); return (CMfailed); } srcName = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-o", "--outfield")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing output field name!"); return (CMfailed); } dstName = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-m", "--mode")) { int optCodes[] = {DBTimeStepYear, DBTimeStepMonth}; const char *optStrs[] = {"year", "month", (char *) NULL}; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing mode!"); return (CMfailed); } if ((mode = CMoptLookup(optStrs, argv[argPos], true)) == DBFault) { CMmsgPrint(CMmsgUsrError, "Invalid decimal date method!"); return (CMfailed); } mode = optCodes[mode]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-V", "--verbose")) { verbose = true; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-h", "--help")) { CMmsgPrint(CMmsgInfo, "%s [options] <input file> <output file>", CMfileName(argv[0])); CMmsgPrint(CMmsgInfo, " -a,--table [table name]"); CMmsgPrint(CMmsgInfo, " -f,--field [field name]"); CMmsgPrint(CMmsgInfo, " -o,--outfield [output field]"); CMmsgPrint(CMmsgInfo, " -m,--mode [year|month]"); CMmsgPrint(CMmsgInfo, " -V,--verbose"); CMmsgPrint(CMmsgInfo, " -h,--help"); return (DBSuccess); } if ((argv[argPos][0] == '-') && ((int) strlen(argv[argPos]) > 1)) { CMmsgPrint(CMmsgUsrError, "Unknown option: %s!", argv[argPos]); return (CMfailed); } argPos++; } if (argNum > 3) { CMmsgPrint(CMmsgUsrError, "Extra arguments!"); return (CMfailed); } if (verbose) RGlibPauseOpen(argv[0]); data = new DBObjData(); if (((argNum > 1) && (strcmp(argv[1], "-") != 0) ? data->Read(argv[1]) : data->Read(stdin)) == DBFault) { delete data; return (CMfailed); } if (tableName == (char *) NULL) tableName = DBrNItems; if ((table = data->Table(tableName)) == (DBObjTable *) NULL) { CMmsgPrint(CMmsgUsrError, "Invalid table!"); delete data; return (CMfailed); } if (srcName == (char *) NULL) srcName = (char *) "Date"; if ((srcField = table->Field(srcName)) == (DBObjTableField *) NULL) { CMmsgPrint(CMmsgUsrError, "Missing date field!"); delete data; return (CMfailed); } if ((srcField->Type() != DBTableFieldString) && (srcField->Type() != DBTableFieldDate)) { CMmsgPrint(CMmsgUsrError, "Invalid date field!"); delete data; return (CMfailed); } if (dstName == (char *) NULL) switch (mode) { case DBTimeStepYear: dstName = (char *) "Decimal Year"; break; case DBTimeStepMonth: dstName = (char *) "Decimal Month"; break; } if ((dstField = table->Field(dstName)) == (DBObjTableField *) NULL) { dstField = new DBObjTableField(dstName, DBTableFieldFloat, (char *) "%8.2f", sizeof(DBFloat4), false); table->AddField(dstField); } for (recID = 0; recID < table->ItemNum(); ++recID) { record = table->Item(recID); if (srcField->Type() == DBTableFieldString) date.Set(srcField->String(record)); else date = srcField->Date(record); switch (mode) { case DBTimeStepYear: dstField->Float(record, date.DecimalYear()); break; case DBTimeStepMonth: dstField->Float(record, date.DecimalMonth()); break; } } ret = (argNum > 2) && (strcmp(argv[2], "-") != 0) ? data->Write(argv[2]) : data->Write(stdout); delete data; if (verbose) RGlibPauseClose(); return (ret); }
int main (int argc,char *argv []) { int argPos, argNum = argc, ret, verbose = false; DBInt recID; bool padding = false; char *tableName = (char *) NULL; char *fieldName = (char *) NULL; char *yearFieldName = (char *) NULL; char *monthFieldName = (char *) NULL; char *dayFieldName = (char *) NULL; char *hourFieldName = (char *) NULL; char *minFieldName = (char *) NULL; char *tmp = (char *) NULL; DBObjData *data; DBObjTable *table; DBObjTableField *srcField; DBObjTableField *yearField = (DBObjTableField *) NULL; DBObjTableField *monthField= (DBObjTableField *) NULL; DBObjTableField *dayField = (DBObjTableField *) NULL; DBObjTableField *hourField = (DBObjTableField *) NULL; DBObjTableField *minField = (DBObjTableField *) NULL; DBInt dbInputType = DBTableFieldInt; DBInt dbInputSize = sizeof(DBShort); DBDate date; DBObjRecord *record; for (argPos = 1;argPos < argNum; ) { if (CMargTest (argv [argPos],"-a","--table")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing table name!"); return (CMfailed); } tableName = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-f","--field")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing field name!"); return (CMfailed); } fieldName = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-y","--year")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing year field name!"); return (CMfailed); } yearFieldName = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-m","--month")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing month field name!"); return (CMfailed); } monthFieldName = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-d","--day")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing day field name!"); return (CMfailed); } dayFieldName = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-o","--hour")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing hour field name!"); return (CMfailed); } hourFieldName = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-i","--minute")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing minute field name!"); return (CMfailed); } minFieldName = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-p","--padding")) { padding = true; dbInputType = DBTableFieldString; dbInputSize = sizeof(DBByte) * 3; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-V","--verbose")) { verbose = true; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-h","--help")) { CMmsgPrint (CMmsgInfo,"%s [options] <input file> <output file>",CMfileName(argv[0])); CMmsgPrint (CMmsgInfo," -a,--table [table name]"); CMmsgPrint (CMmsgInfo," -f,--field [field name]"); CMmsgPrint (CMmsgInfo," -y,--year [year field]"); CMmsgPrint (CMmsgInfo," -m,--month [month field]"); CMmsgPrint (CMmsgInfo," -d,--day [day field]"); CMmsgPrint (CMmsgInfo," -o,--hour [hour field]"); CMmsgPrint (CMmsgInfo," -i,--minute [minute field]"); CMmsgPrint (CMmsgInfo," -p,--padding"); CMmsgPrint (CMmsgInfo," -V,--verbose"); CMmsgPrint (CMmsgInfo," -h,--help"); return (DBSuccess); } if ((argv [argPos][0] == '-') && ((int) strlen (argv [argPos]) > 1)) { CMmsgPrint (CMmsgUsrError,"Unknown option: %s!",argv [argPos]); return (CMfailed); } argPos++; } if (argNum > 3) { CMmsgPrint (CMmsgUsrError,"Extra arguments!"); return (CMfailed); } if (verbose) RGlibPauseOpen (argv[0]); data = new DBObjData (); if (((argNum > 1) && (strcmp (argv [1],"-") != 0) ? data->Read (argv [1]) : data->Read (stdin)) == DBFault) { delete data; return (CMfailed); } if (tableName == (char *) NULL) tableName = DBrNItems; if ((table = data->Table (tableName)) == (DBObjTable *) NULL) { CMmsgPrint (CMmsgUsrError,"Invalid table!"); delete data; return (CMfailed); } if (fieldName == (char *) NULL) fieldName = (char *) "Date"; if ((srcField = table->Field (fieldName)) == (DBObjTableField *) NULL) { CMmsgPrint (CMmsgUsrError,"Missing date field!"); delete data; return (CMfailed); } if ((srcField->Type () != DBTableFieldString) && (srcField->Type () != DBTableFieldDate)) { CMmsgPrint (CMmsgUsrError,"Invalid date field!"); delete data; return (CMfailed); } if (yearFieldName != (char *) NULL) { if ((yearField = table->Field (yearFieldName)) == (DBObjTableField *) NULL) { yearField = new DBObjTableField (yearFieldName,DBTableFieldInt,"%4d",sizeof(DBShort),false); table->AddField (yearField); } } if (monthFieldName != (char *) NULL) { if ((monthField = table->Field (monthFieldName)) == (DBObjTableField *) NULL) { monthField = new DBObjTableField (monthFieldName,dbInputType,"%2d",dbInputSize,false); table->AddField (monthField); } } if (dayFieldName != (char *) NULL) { if (monthField == (DBObjTableField *) NULL) { CMmsgPrint (CMmsgUsrError,"Month field is not set!"); delete data; return (CMfailed); } if ((dayField = table->Field (dayFieldName)) == (DBObjTableField *) NULL) { dayField = new DBObjTableField (dayFieldName,dbInputType,"%2d",dbInputSize,false); table->AddField (dayField); } } if (hourFieldName != (char *) NULL) { if (dayField == (DBObjTableField *) NULL) { CMmsgPrint (CMmsgUsrError,"Day field is not set!"); delete data; return (CMfailed); } if ((hourField = table->Field (hourFieldName)) == (DBObjTableField *) NULL) { hourField = new DBObjTableField (hourFieldName,dbInputType,"%2d",dbInputSize,false); table->AddField (hourField); } } if (minFieldName != (char *) NULL) { if (hourField == (DBObjTableField *) NULL) { CMmsgPrint (CMmsgUsrError,"Hour field is not set!"); delete data; return (CMfailed); } if ((minField = table->Field (minFieldName)) == (DBObjTableField *) NULL) { minField = new DBObjTableField (minFieldName,dbInputType,"%2d",dbInputSize,false); table->AddField (minField); } } for (recID = 0;recID < table->ItemNum ();++recID) { record = table->Item (recID); if (srcField->Type () == DBTableFieldString) date.Set (srcField->String (record)); else date = srcField->Date (record); if (yearField != (DBObjTableField *) NULL) yearField->Int(record,date.Year ()); if(padding) { if (monthField != (DBObjTableField *) NULL) { if (date.Month() != DBDefaultMissingIntVal) monthField->String (record,tmp = _CMDpadit(date.Month() + 1,false)); else monthField->String (record,tmp = _CMDpadit(date.Month(),false)); free(tmp); } if (dayField != (DBObjTableField *) NULL) { dayField->String (record,tmp = _CMDpadit(date.Day(),false)); free(tmp); } if (hourField != (DBObjTableField *) NULL) { hourField->String (record,tmp = _CMDpadit(date.Hour(),false)); free(tmp); } if (minField != (DBObjTableField *) NULL) { minField->String (record,tmp = _CMDpadit(date.Minute(),false)); free(tmp); } } else { if (monthField != (DBObjTableField *) NULL) { if (date.Month() != DBDefaultMissingIntVal) monthField->Int(record,date.Month () + 1); else monthField->Int (record,DBDefaultMissingIntVal); } if (dayField != (DBObjTableField *) NULL) dayField->Int (record,date.Day ()); if (hourField != (DBObjTableField *) NULL) hourField->Int(record,date.Hour ()); if (minField != (DBObjTableField *) NULL) minField->Int (record,date.Minute ()); } } ret = (argNum > 2) && (strcmp (argv [2],"-") != 0) ? data->Write (argv [2]) : data->Write (stdout); delete data; if (verbose) RGlibPauseClose (); return (ret); }
int main(int argc, char *argv[]) { int argPos, argNum = argc, ret, idleMode, verbose = false; char *tableName = (char *) NULL; DBInt recID; DBObjData *data; DBObjTable *table; DBObjRecord *record; for (argPos = 1; argPos < argNum;) { if (CMargTest (argv[argPos], "-a", "--table")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing table name!"); return (CMfailed); } tableName = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-m", "--mode")) { int modeCodes[] = {true, false}; const char *modes[] = {"set", "clear"}; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing selection mode!"); return (CMfailed); } if ((idleMode = CMoptLookup(modes, argv[argPos], true)) == DBFault) { CMmsgPrint(CMmsgUsrError, "Invalid selection mode!"); return (CMfailed); } idleMode = modeCodes[idleMode]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-V", "--verbose")) { verbose = true; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-h", "--help")) { CMmsgPrint(CMmsgInfo, "%s [options] <input file> <output file>", CMfileName(argv[0])); CMmsgPrint(CMmsgInfo, " -a,--table [table name]"); CMmsgPrint(CMmsgInfo, " -m,--mode [set|clear]"); CMmsgPrint(CMmsgInfo, " -V,--verbose"); CMmsgPrint(CMmsgInfo, " -h,--help"); return (DBSuccess); } if ((argv[argPos][0] == '-') && (strlen(argv[argPos]) > 1)) { CMmsgPrint(CMmsgUsrError, "Unknown option: %s!", argv[argPos]); return (CMfailed); } argPos++; } if (argNum > 3) { CMmsgPrint(CMmsgUsrError, "Extra arguments!"); return (CMfailed); } if (verbose) RGlibPauseOpen(argv[0]); data = new DBObjData(); if (((argNum > 1) && (strcmp(argv[1], "-") != 0) ? data->Read(argv[1]) : data->Read(stdin)) == DBFault) { delete data; return (CMfailed); } if (tableName == (char *) NULL) tableName = DBrNItems; if ((table = data->Table(tableName)) == (DBObjTable *) NULL) { CMmsgPrint(CMmsgUsrError, "Invalid table!"); delete data; return (CMfailed); } if (idleMode) for (recID = 0; recID < table->ItemNum(); ++recID) { record = table->Item(recID); if ((record->Flags() & DBObjectFlagSelected) == DBObjectFlagSelected) record->Flags(DBObjectFlagIdle, DBSet); else record->Flags(DBObjectFlagIdle, DBClear); } else for (recID = 0; recID < table->ItemNum(); ++recID) { record = table->Item(recID); record->Flags(DBObjectFlagIdle, DBClear); } ret = (argNum > 2) && (strcmp(argv[2], "-") != 0) ? data->Write(argv[2]) : data->Write(stdout); delete data; if (verbose) RGlibPauseClose(); return (ret); }
int main (int argc,char *argv []) { int argPos, argNum = argc, ret, i, fieldNum = 0, verbose = false; DBObjData *data; char *tableName = (char *) NULL, **fieldNames; DBObjTable *table; DBObjTableField *field; for (argPos = 1;argPos < argNum; ) { if (CMargTest (argv [argPos],"-a","--table")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing table name!"); return (CMfailed); } tableName = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-f","--field")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing field name!"); return (CMfailed); } fieldNames = fieldNum > 0 ? (char **) realloc (fieldNames,(fieldNum + 1) * sizeof (char *)) : (char **) calloc (1,sizeof (char *)); if (fieldNames == (char **) NULL) { CMmsgPrint (CMmsgSysError, "Memory allocation error in: %s %d",__FILE__,__LINE__); return (CMfailed); } fieldNames [fieldNum++] = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-V","--verbose")) { verbose = true; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-h","--help")) { CMmsgPrint (CMmsgInfo,"%s [options] <input file> <output file>",CMprgName(argv[0])); CMmsgPrint (CMmsgInfo," -a,--table [table name]"); CMmsgPrint (CMmsgInfo," -f,--field [field name]"); CMmsgPrint (CMmsgInfo," -V,--verbose"); CMmsgPrint (CMmsgInfo," -h,--help"); return (DBSuccess); } if ((argv [argPos][0] == '-') && (strlen (argv [argPos]) > 1)) { CMmsgPrint (CMmsgUsrError,"Unknown option: %s!",argv [argPos]); return (CMfailed); } argPos++; } if (argNum > 3) { CMmsgPrint (CMmsgUsrError,"Extra arguments!"); return (CMfailed); } if (verbose) RGlibPauseOpen (argv[0]); if (tableName == (char *) NULL) tableName = DBrNItems; if (fieldNum < 1) { CMmsgPrint (CMmsgUsrError,"Missing field name!"); return (CMfailed); } data = new DBObjData (); if (((argNum > 1) && (strcmp (argv [1],"-") != 0) ? data->Read (argv [1]) : data->Read (stdin)) == DBFault) { delete data; return (CMfailed); } if ((table = data->Table (tableName)) == (DBObjTable *) NULL) { CMmsgPrint (CMmsgUsrError,"Invalid table: %s!",tableName); delete data; return (CMfailed); } for (i = 0;i < fieldNum;++i) { if ((field = table->Field (fieldNames [i])) == (DBObjTableField *) NULL) { CMmsgPrint (CMmsgUsrError,"Invalid field: %s!",fieldNames [i]); continue; } if (DBTableFieldIsOptional (field) != true) { CMmsgPrint (CMmsgUsrError,"Required field!"); continue; } table->DeleteField (field); } ret = (argNum > 2) && (strcmp (argv [2],"-") != 0) ? data->Write (argv [2]) : data->Write (stdout); free (fieldNames); delete data; if (verbose) RGlibPauseClose (); return (ret); }
int main(int argc, char* argv[]) { bool Interactive_Mode = false, All_Fields = false; char *title = (char *) NULL, *subject = (char *) NULL, *domain = (char *) NULL, *version = (char *) NULL; char *citation = (char *) NULL, *institute = (char *) NULL, *source = (char *) NULL, *person = (char *) NULL; char *comment = (char *) NULL; int argPos, argNum = argc, verbose = false; FILE *file = (FILE *) NULL; DBObjData *dbData = new DBObjData(); if (argc == 1) { CMDshowUsage(argv[0]); return 0; } for (argPos = 1;argPos < argNum; ) { if (CMargTest (argv [argPos],"-a","--all")) { All_Fields = true; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-i","--interactive")) { Interactive_Mode = true; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-V","--verbose")) { verbose = true; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-h","--help")) { CMDshowUsage(argv[0]); return 0; } argPos++; } if(All_Fields) { CMDgetInfoInteractive(&title, (char *) "title:>", false); CMDgetInfoInteractive(&subject, (char *) "subject:>", false); CMDgetInfoInteractive(&domain, (char *) "domain:>", false); CMDgetInfoInteractive(&version, (char *) "version:>", false); CMDgetInfoInteractive(&citation, (char *) "citation (multiple lines finish with $):>",true); CMDgetInfoInteractive(&institute,(char *) "institute:>",false); CMDgetInfoInteractive(&person, (char *) "person:>", false); CMDgetInfoInteractive(&source, (char *) "source (multiple lines finish with $):>",true); CMDgetInfoInteractive(&comment, (char *) "comment (multiple lines finish with $):>",true); } else { for (argPos = 1;argPos < argNum; ) { if (CMargTest (argv [argPos],"-t","--title")) { argNum = CMargShiftLeft (argPos,argv,argNum); if(Interactive_Mode) CMDgetInfoInteractive(&title,(char *) "title:>",false); else { if (argNum <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing title!"); return (CMfailed); } title = argv[argPos]; argNum = CMargShiftLeft (argPos,argv,argNum); } continue; } if (CMargTest (argv [argPos],"-d", "--domain")) { argNum = CMargShiftLeft (argPos,argv,argNum); if(Interactive_Mode) CMDgetInfoInteractive(&domain,(char *) "domain:>",false); else { if (argNum <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing domain!"); return (CMfailed); } domain = argv[argPos]; argNum = CMargShiftLeft (argPos,argv,argNum); } continue; } if (CMargTest (argv [argPos],"-s","--subject")) { argNum = CMargShiftLeft (argPos,argv,argNum); if(Interactive_Mode) CMDgetInfoInteractive(&subject,(char *) "subject:>",false); else { if (argNum <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing subject!"); return (CMfailed); } subject = argv[argPos]; argNum = CMargShiftLeft (argPos,argv,argNum); } continue; } if (CMargTest (argv [argPos],"-v","--version")) { argNum = CMargShiftLeft (argPos,argv,argNum); if(Interactive_Mode) CMDgetInfoInteractive(&version,(char *) "version:>",false); else { if (argNum <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing version!"); return (CMfailed); } version = argv[argPos]; argNum = CMargShiftLeft (argPos,argv,argNum); } continue; } if (CMargTest (argv [argPos],"-n","--institute")) { argNum = CMargShiftLeft (argPos,argv,argNum); if(Interactive_Mode) CMDgetInfoInteractive(&institute,(char *) "institute:>",false); else { if (argNum <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing institute!"); return (CMfailed); } institute = argv[argPos]; argNum = CMargShiftLeft (argPos,argv,argNum); } continue; } if (CMargTest (argv [argPos], "-p", "--person")) { argNum = CMargShiftLeft (argPos,argv,argNum); if(Interactive_Mode) CMDgetInfoInteractive(&person, (char *) "person:>",false); else { if (argNum <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing person!"); return (CMfailed); } person = argv[argPos]; argNum = CMargShiftLeft (argPos,argv,argNum); } continue; } if (CMargTest (argv [argPos], "-i", "--citation")) { argNum = CMargShiftLeft (argPos,argv,argNum); if(Interactive_Mode) CMDgetInfoInteractive(&citation,(char *) "citation (multiple lines finish with $):>",true); else { if (argNum <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing citation!"); return (CMfailed); } citation = argv[argPos]; argNum = CMargShiftLeft (argPos,argv,argNum); } continue; } if (CMargTest (argv [argPos],"-c","--comment")) { argNum = CMargShiftLeft (argPos,argv,argNum); if(Interactive_Mode) CMDgetInfoInteractive(&comment,(char *) "comment (multiple lines finish with $):>",true); else { if (argNum <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing comment!"); return (CMfailed); } comment = argv[argPos]; argNum = CMargShiftLeft (argPos,argv,argNum); } continue; } if (CMargTest (argv [argPos],"-S","--source")) { argNum = CMargShiftLeft (argPos,argv,argNum); if(Interactive_Mode) CMDgetInfoInteractive(&source,(char *) "source (multiple lines finish with $):>",true); else { if (argNum < argPos) { CMmsgPrint (CMmsgUsrError,"Missing source!"); return (CMfailed); } source = argv[argPos]; argNum = CMargShiftLeft (argPos,argv,argNum); } continue; } if ((argv [argPos][0] == '-') && (strlen (argv [argPos]) > 1)) { CMmsgPrint (CMmsgUsrError,"Unknown option: %s!",argv [argPos]); return (CMfailed); } argPos++; } } if (argNum > 3) { CMmsgPrint (CMmsgUsrError,"Extra arguments!"); return (CMfailed); } if (verbose) RGlibPauseOpen (argv[0]); if ((argNum > 1) && (strcmp(argv[1],"-") != 0)) { file = fopen (argv[1],"r"); if(dbData->Read(file) == DBFault) { delete dbData; return(DBFault); } fclose(file); file = (FILE *) NULL; } else { CMmsgPrint (CMmsgInfo,"No data file, reading from stdin and writing to stdout!"); file = stdout; if(dbData->Read(stdin) == DBFault) { delete dbData; return(DBFault); } } if(title != (char *) NULL) dbData->Name(title); if(domain != (char *) NULL) dbData->Document(DBDocGeoDomain,domain); if(subject != (char *) NULL) dbData->Document(DBDocSubject,subject); if(version != (char *) NULL) dbData->Document(DBDocVersion,version); if(institute != (char *) NULL) dbData->Document(DBDocCitationInst,institute); if(person != (char *) NULL) dbData->Document(DBDocOwnerPerson,person); if(citation != (char *) NULL) dbData->Document(DBDocCitationRef,citation); if(comment != (char *) NULL) dbData->Document(DBDocComment,comment); if(source != (char *) NULL) dbData->Document(DBDocSourcePerson,source); if (file != stdout) file = fopen(argv[1],"wb"); if(dbData->Write(file) == DBFault) return(-1); if (file != stdout) fclose(file); if (verbose) RGlibPauseClose (); if (Interactive_Mode) { if (title != (char *) NULL) delete title; if (domain != (char *) NULL) delete domain; if (subject != (char *) NULL) delete subject; if (version != (char *) NULL) delete version; if (institute != (char *) NULL) delete institute; if (person != (char *) NULL) delete person; if (citation != (char *) NULL) delete citation; if (comment != (char *) NULL) delete comment; if (source != (char *) NULL) delete source; } return (0); }