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 ); }
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" ); } }