public ValueEval evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0, ValueEval arg1,ValueEval arg2) {try {String needle = TextFunction.evaluateStringArg(arg0, srcRowIndex, srcColumnIndex);String haystack = TextFunction.evaluateStringArg(arg1, srcRowIndex, srcColumnIndex);int startpos = TextFunction.evaluateIntArg(arg2, srcRowIndex, srcColumnIndex) - 1;if (startpos < 0) {return ErrorEval.VALUE_INVALID;}return eval(haystack, needle, startpos);} catch (EvaluationException e) {return e.getErrorEval();}}

public ValueEval evaluate ( int srcRowIndex , int srcColumnIndex , ValueEval arg0 , ValueEval arg1 , ValueEval arg2 ) { try { String needle = TextFunction . evaluateStringArg ( arg0 , srcRowIndex , srcColumnIndex ) ; String haystack = TextFunction . evaluateStringArg ( arg1 , srcRowIndex , srcColumnIndex ) ; int startpos = TextFunction . evaluateIntArg ( arg2 , srcRowIndex , srcColumnIndex ) - 1 ; if ( startpos < 0 ) { return ErrorEval . VALUE_INVALID ; } return eval ( haystack , needle , startpos ) ; } catch ( EvaluationException e ) { return e . getErrorEval ( ) ; } }
public override ValueEval Evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0, ValueEval arg1,ValueEval arg2){try{String needle = TextFunction.EvaluateStringArg(arg0, srcRowIndex, srcColumnIndex);String haystack = TextFunction.EvaluateStringArg(arg1, srcRowIndex, srcColumnIndex);int startpos = TextFunction.EvaluateIntArg(arg2, srcRowIndex, srcColumnIndex) - 1;if (startpos < 0){return ErrorEval.VALUE_INVALID;}return Eval(haystack, needle, startpos);}catch (EvaluationException e){return e.GetErrorEval();}}
