Beispiel #1
0
void DateReadCommand :: ProcessFlags( ALib::CommandLine & cmd ) {

    ALib::CommaList cl( cmd.GetValue( FLAG_COLS, "" ) );
    CommaListToIndex( cl, mFields );
    string mask = cmd.GetValue( FLAG_MASK, "" );
    string cys = cmd.GetValue( FLAG_CDATE, ALib::Str( BASE_YEAR ) );

    NotBoth( cmd, FLAG_BDLIST, FLAG_BDEXCL );

    if ( cmd.HasFlag( FLAG_BDLIST )  ) {
        mWriteAction = WriteBad;
    }
    else if ( cmd.HasFlag( FLAG_BDEXCL ) ) {
        mWriteAction = WriteGood;
    }
    else {
        mWriteAction = WriteAll;
    }

    if  ( ! ALib::IsInteger( cys )) {
        CSVTHROW( "Invalid year value " << cys );

    }
    int cy = ALib::ToInteger( cys );
    string mnames = cmd.GetValue( FLAG_MNAMES, MONTH_NAMES );
    delete mReader;
    mReader = new MaskedDateReader( mask, mnames, cy );
}
Beispiel #2
0
void ExcludeCommand :: ProcessFlags( const ALib::CommandLine & cmd ) {

	NotBoth( cmd, FLAG_REVCOLS, FLAG_COLS, ReqOp::Required );

	string es = cmd.GetValue( FLAG_IF, "" );
	if ( es != "" ) {
		string emsg = mExpr.Compile( es );
		if ( emsg != "" ) {
			CSVTHROW( emsg + " " + es );
		}

	}
	mReverse = cmd.HasFlag( FLAG_REVCOLS );
	string sn = cmd.GetValue( FLAG_COLS, ""  );
	if ( sn == "" ) {
		sn = cmd.GetValue( FLAG_REVCOLS, ""  );
	}
	CommaListToIndex( ALib::CommaList( sn ), mFields );
	if ( mFields.size() == 0 ) {
		CSVTHROW( "Field list  specified by " << FLAG_COLS << " or "
						<< FLAG_REVCOLS << " cannot be empty" );
	}
}