@@ -613,10 +613,10 @@ public Function_BIN2OCT(FunctionBase func1, FunctionBase func2) : base(func1, fu
613613 public override Operand Calculate ( AlgorithmEngine work )
614614 {
615615 var args1 = func1 . Calculate ( work ) ; if ( args1 . Type != OperandType . TEXT ) { args1 = args1 . ToText ( "Function '{0}' parameter {1} is error!" , "BIN2OCT" , 1 ) ; if ( args1 . IsError ) { return args1 ; } }
616-
616+
617617 if ( Regex . IsMatch ( args1 . TextValue , "^[01]+$" , RegexOptions . Compiled ) == false ) { return Operand . Error ( "Function '{0}' parameter {1} is error!" , "BIN2OCT" , 1 ) ; }
618618 var num = Convert . ToString ( Convert . ToInt32 ( args1 . TextValue , 2 ) , 8 ) ;
619- if ( func2 != null ) {
619+ if ( func2 != null ) {
620620 var args2 = func2 . Calculate ( work ) ; if ( args2 . Type != OperandType . NUMBER ) { args2 = args2 . ToNumber ( "Function '{0}' parameter {1} is error!" , "BIN2OCT" , 2 ) ; if ( args2 . IsError ) { return args2 ; } }
621621 if ( num . Length > args2 . IntValue ) {
622622 return Operand . Create ( num . PadLeft ( args2 . IntValue , '0' ) ) ;
@@ -679,23 +679,19 @@ public override void ToString(StringBuilder stringBuilder, bool addBrackets)
679679 }
680680 }
681681
682- internal class Function_OCT2BIN : Function_N
682+ internal class Function_OCT2BIN : Function_2
683683 {
684- public Function_OCT2BIN ( FunctionBase [ ] funcs ) : base ( funcs )
684+ public Function_OCT2BIN ( FunctionBase func1 , FunctionBase func2 ) : base ( func1 , func2 )
685685 {
686686 }
687687
688688 public override Operand Calculate ( AlgorithmEngine work )
689689 {
690- var args = new List < Operand > ( ) ;
691- foreach ( var item in funcs ) { var aa = item . Calculate ( work ) ; if ( aa . IsError ) { return aa ; } args . Add ( aa ) ; }
692- var args1 = args [ 0 ] . ToText ( "Function '{0}' parameter {1} is error!" , "OCT2BIN" , 1 ) ;
693- if ( args1 . IsError ) { return args1 ; }
690+ var args1 = func1 . Calculate ( work ) ; if ( args1 . Type != OperandType . TEXT ) { args1 = args1 . ToText ( "Function '{0}' parameter {1} is error!" , "OCT2BIN" , 1 ) ; if ( args1 . IsError ) { return args1 ; } }
694691 if ( Regex . IsMatch ( args1 . TextValue , "^[0-7]+$" , RegexOptions . Compiled ) == false ) { return Operand . Error ( "Function '{0}' parameter {1} is error!" , "OCT2BIN" , 1 ) ; }
695692 var num = Convert . ToString ( Convert . ToInt32 ( args1 . TextValue , 8 ) , 2 ) ;
696- if ( args . Count == 2 ) {
697- var args2 = args [ 1 ] . ToNumber ( "Function '{0}' parameter {1} is error!" , "OCT2BIN" , 2 ) ;
698- if ( args2 . IsError ) { return args2 ; }
693+ if ( func2 != null ) {
694+ var args2 = func2 . Calculate ( work ) ; if ( args2 . Type != OperandType . NUMBER ) { args2 = args2 . ToNumber ( "Function '{0}' parameter {1} is error!" , "OCT2BIN" , 2 ) ; if ( args2 . IsError ) { return args2 ; } }
699695 if ( num . Length > args2 . IntValue ) {
700696 return Operand . Create ( num . PadLeft ( args2 . IntValue , '0' ) ) ;
701697 }
@@ -729,23 +725,20 @@ public override void ToString(StringBuilder stringBuilder, bool addBrackets)
729725 }
730726 }
731727
732- internal class Function_OCT2HEX : Function_N
728+ internal class Function_OCT2HEX : Function_2
733729 {
734- public Function_OCT2HEX ( FunctionBase [ ] funcs ) : base ( funcs )
730+ public Function_OCT2HEX ( FunctionBase func1 , FunctionBase func2 ) : base ( func1 , func2 )
735731 {
736732 }
737733
738734 public override Operand Calculate ( AlgorithmEngine work )
739735 {
740- var args = new List < Operand > ( ) ;
741- foreach ( var item in funcs ) { var aa = item . Calculate ( work ) ; if ( aa . IsError ) { return aa ; } args . Add ( aa ) ; }
742- var args1 = args [ 0 ] . ToText ( "Function '{0}' parameter {1} is error!" , "OCT2HEX" , 1 ) ;
743- if ( args1 . IsError ) { return args1 ; }
736+ var args1 = func1 . Calculate ( work ) ; if ( args1 . Type != OperandType . TEXT ) { args1 = args1 . ToText ( "Function '{0}' parameter {1} is error!" , "OCT2HEX" , 1 ) ; if ( args1 . IsError ) { return args1 ; } }
737+
744738 if ( Regex . IsMatch ( args1 . TextValue , "^[0-7]+$" , RegexOptions . Compiled ) == false ) { return Operand . Error ( "Function '{0}' parameter {1} is error!" , "OCT2HEX" , 1 ) ; }
745739 var num = Convert . ToString ( Convert . ToInt32 ( args1 . TextValue , 8 ) , 16 ) . ToUpper ( ) ;
746- if ( args . Count == 2 ) {
747- var args2 = args [ 1 ] . ToNumber ( "Function '{0}' parameter {1} is error!" , "OCT2HEX" , 2 ) ;
748- if ( args2 . IsError ) { return args2 ; }
740+ if ( func2 != null ) {
741+ var args2 = func2 . Calculate ( work ) ; if ( args2 . Type != OperandType . NUMBER ) { args2 = args2 . ToNumber ( "Function '{0}' parameter {1} is error!" , "OCT2HEX" , 2 ) ; if ( args2 . IsError ) { return args2 ; } }
749742 if ( num . Length > args2 . IntValue ) {
750743 return Operand . Create ( num . PadLeft ( args2 . IntValue , '0' ) ) ;
751744 }
@@ -759,23 +752,20 @@ public override void ToString(StringBuilder stringBuilder, bool addBrackets)
759752 }
760753 }
761754
762- internal class Function_HEX2BIN : Function_N
755+ internal class Function_HEX2BIN : Function_2
763756 {
764- public Function_HEX2BIN ( FunctionBase [ ] funcs ) : base ( funcs )
757+ public Function_HEX2BIN ( FunctionBase func1 , FunctionBase func2 ) : base ( func1 , func2 )
765758 {
766759 }
767760
768761 public override Operand Calculate ( AlgorithmEngine work )
769762 {
770- var args = new List < Operand > ( ) ;
771- foreach ( var item in funcs ) { var aa = item . Calculate ( work ) ; if ( aa . IsError ) { return aa ; } args . Add ( aa ) ; }
772- var args1 = args [ 0 ] . ToText ( "Function '{0}' parameter {1} is error!" , "HEX2BIN" , 1 ) ;
773- if ( args1 . IsError ) { return args1 ; }
763+ var args1 = func1 . Calculate ( work ) ; if ( args1 . Type != OperandType . TEXT ) { args1 = args1 . ToText ( "Function '{0}' parameter {1} is error!" , "HEX2BIN" , 1 ) ; if ( args1 . IsError ) { return args1 ; } }
764+
774765 if ( Regex . IsMatch ( args1 . TextValue , "^[0-9A-Fa-f]+$" , RegexOptions . Compiled ) == false ) { return Operand . Error ( "Function '{0}' parameter {1} is error!" , "HEX2BIN" , 1 ) ; }
775766 var num = Convert . ToString ( Convert . ToInt32 ( args1 . TextValue , 16 ) , 2 ) ;
776- if ( args . Count == 2 ) {
777- var args2 = args [ 1 ] . ToNumber ( "Function '{0}' parameter {1} is error!" , "HEX2BIN" , 2 ) ;
778- if ( args2 . IsError ) { return args2 ; }
767+ if ( func2 != null ) {
768+ var args2 = func2 . Calculate ( work ) ; if ( args2 . Type != OperandType . NUMBER ) { args2 = args2 . ToNumber ( "Function '{0}' parameter {1} is error!" , "HEX2BIN" , 2 ) ; if ( args2 . IsError ) { return args2 ; } }
779769 if ( num . Length > args2 . IntValue ) {
780770 return Operand . Create ( num . PadLeft ( args2 . IntValue , '0' ) ) ;
781771 }
@@ -809,23 +799,19 @@ public override void ToString(StringBuilder stringBuilder, bool addBrackets)
809799 }
810800 }
811801
812- internal class Function_HEX2OCT : Function_N
802+ internal class Function_HEX2OCT : Function_2
813803 {
814- public Function_HEX2OCT ( FunctionBase [ ] funcs ) : base ( funcs )
804+ public Function_HEX2OCT ( FunctionBase func1 , FunctionBase func2 ) : base ( func1 , func2 )
815805 {
816806 }
817807
818808 public override Operand Calculate ( AlgorithmEngine work )
819809 {
820- var args = new List < Operand > ( ) ;
821- foreach ( var item in funcs ) { var aa = item . Calculate ( work ) ; if ( aa . IsError ) { return aa ; } args . Add ( aa ) ; }
822- var args1 = args [ 0 ] . ToText ( "Function '{0}' parameter {1} is error!" , "HEX2OCT" , 1 ) ;
823- if ( args1 . IsError ) { return args1 ; }
810+ var args1 = func1 . Calculate ( work ) ; if ( args1 . Type != OperandType . TEXT ) { args1 = args1 . ToText ( "Function '{0}' parameter {1} is error!" , "HEX2OCT" , 1 ) ; if ( args1 . IsError ) { return args1 ; } }
824811 if ( Regex . IsMatch ( args1 . TextValue , "^[0-9A-Fa-f]+$" , RegexOptions . Compiled ) == false ) { return Operand . Error ( "Function '{0}' parameter {1} is error!" , "HEX2OCT" , 1 ) ; }
825812 var num = Convert . ToString ( Convert . ToInt32 ( args1 . TextValue , 16 ) , 8 ) ;
826- if ( args . Count == 2 ) {
827- var args2 = args [ 1 ] . ToNumber ( "Function '{0}' parameter {1} is error!" , "HEX2OCT" , 2 ) ;
828- if ( args2 . IsError ) { return args2 ; }
813+ if ( func2 != null ) {
814+ var args2 = func2 . Calculate ( work ) ; if ( args2 . Type != OperandType . NUMBER ) { args2 = args2 . ToNumber ( "Function '{0}' parameter {1} is error!" , "HEX2OCT" , 2 ) ; if ( args2 . IsError ) { return args2 ; } }
829815 if ( num . Length > args2 . IntValue ) {
830816 return Operand . Create ( num . PadLeft ( args2 . IntValue , '0' ) ) ;
831817 }
@@ -839,22 +825,18 @@ public override void ToString(StringBuilder stringBuilder, bool addBrackets)
839825 }
840826 }
841827
842- internal class Function_DEC2BIN : Function_N
828+ internal class Function_DEC2BIN : Function_2
843829 {
844- public Function_DEC2BIN ( FunctionBase [ ] funcs ) : base ( funcs )
830+ public Function_DEC2BIN ( FunctionBase func1 , FunctionBase func2 ) : base ( func1 , func2 )
845831 {
846832 }
847833
848834 public override Operand Calculate ( AlgorithmEngine work )
849835 {
850- var args = new List < Operand > ( ) ;
851- foreach ( var item in funcs ) { var aa = item . Calculate ( work ) ; if ( aa . IsError ) { return aa ; } args . Add ( aa ) ; }
852- var args1 = args [ 0 ] . ToNumber ( "Function '{0}' parameter {1} is error!" , "DEC2BIN" , 1 ) ;
853- if ( args1 . IsError ) { return args1 ; }
836+ var args1 = func1 . Calculate ( work ) ; if ( args1 . Type != OperandType . NUMBER ) { args1 = args1 . ToNumber ( "Function '{0}' parameter {1} is error!" , "DEC2BIN" , 1 ) ; if ( args1 . IsError ) { return args1 ; } }
854837 var num = Convert . ToString ( args1 . IntValue , 2 ) ;
855- if ( args . Count == 2 ) {
856- var args2 = args [ 1 ] . ToNumber ( "Function '{0}' parameter {1} is error!" , "DEC2BIN" , 2 ) ;
857- if ( args2 . IsError ) { return args2 ; }
838+ if ( func2 != null ) {
839+ var args2 = func2 . Calculate ( work ) ; if ( args2 . Type != OperandType . NUMBER ) { args2 = args2 . ToNumber ( "Function '{0}' parameter {1} is error!" , "DEC2BIN" , 2 ) ; if ( args2 . IsError ) { return args2 ; } }
858840 if ( num . Length > args2 . IntValue ) {
859841 return Operand . Create ( num . PadLeft ( args2 . IntValue , '0' ) ) ;
860842 }
@@ -868,22 +850,18 @@ public override void ToString(StringBuilder stringBuilder, bool addBrackets)
868850 }
869851 }
870852
871- internal class Function_DEC2OCT : Function_N
853+ internal class Function_DEC2OCT : Function_2
872854 {
873- public Function_DEC2OCT ( FunctionBase [ ] funcs ) : base ( funcs )
855+ public Function_DEC2OCT ( FunctionBase func1 , FunctionBase func2 ) : base ( func1 , func2 )
874856 {
875857 }
876858
877859 public override Operand Calculate ( AlgorithmEngine work )
878860 {
879- var args = new List < Operand > ( ) ;
880- foreach ( var item in funcs ) { var aa = item . Calculate ( work ) ; if ( aa . IsError ) { return aa ; } args . Add ( aa ) ; }
881- var args1 = args [ 0 ] . ToNumber ( "Function '{0}' parameter {1} is error!" , "DEC2OCT" , 1 ) ;
882- if ( args1 . IsError ) { return args1 ; }
861+ var args1 = func1 . Calculate ( work ) ; if ( args1 . Type != OperandType . NUMBER ) { args1 = args1 . ToNumber ( "Function '{0}' parameter {1} is error!" , "DEC2OCT" , 1 ) ; if ( args1 . IsError ) { return args1 ; } }
883862 var num = Convert . ToString ( args1 . IntValue , 8 ) ;
884- if ( args . Count == 2 ) {
885- var args2 = args [ 1 ] . ToNumber ( "Function '{0}' parameter {1} is error!" , "DEC2OCT" , 2 ) ;
886- if ( args2 . IsError ) { return args2 ; }
863+ if ( func2 != null ) {
864+ var args2 = func2 . Calculate ( work ) ; if ( args2 . Type != OperandType . NUMBER ) { args2 = args2 . ToNumber ( "Function '{0}' parameter {1} is error!" , "DEC2OCT" , 2 ) ; if ( args2 . IsError ) { return args2 ; } }
887865 if ( num . Length > args2 . IntValue ) {
888866 return Operand . Create ( num . PadLeft ( args2 . IntValue , '0' ) ) ;
889867 }
@@ -897,22 +875,18 @@ public override void ToString(StringBuilder stringBuilder, bool addBrackets)
897875 }
898876 }
899877
900- internal class Function_DEC2HEX : Function_N
878+ internal class Function_DEC2HEX : Function_2
901879 {
902- public Function_DEC2HEX ( FunctionBase [ ] funcs ) : base ( funcs )
880+ public Function_DEC2HEX ( FunctionBase func1 , FunctionBase func2 ) : base ( func1 , func2 )
903881 {
904882 }
905883
906884 public override Operand Calculate ( AlgorithmEngine work )
907885 {
908- var args = new List < Operand > ( ) ;
909- foreach ( var item in funcs ) { var aa = item . Calculate ( work ) ; if ( aa . IsError ) { return aa ; } args . Add ( aa ) ; }
910- var args1 = args [ 0 ] . ToNumber ( "Function '{0}' parameter {1} is error!" , "DEC2HEX" , 1 ) ;
911- if ( args1 . IsError ) { return args1 ; }
886+ var args1 = func1 . Calculate ( work ) ; if ( args1 . Type != OperandType . NUMBER ) { args1 = args1 . ToNumber ( "Function '{0}' parameter {1} is error!" , "DEC2HEX" , 1 ) ; if ( args1 . IsError ) { return args1 ; } }
912887 var num = Convert . ToString ( args1 . IntValue , 16 ) . ToUpper ( ) ;
913- if ( args . Count == 2 ) {
914- var args2 = args [ 1 ] . ToNumber ( "Function '{0}' parameter {1} is error!" , "DEC2HEX" , 2 ) ;
915- if ( args2 . IsError ) { return args2 ; }
888+ if ( func2 != null ) {
889+ var args2 = func2 . Calculate ( work ) ; if ( args2 . Type != OperandType . NUMBER ) { args2 = args2 . ToNumber ( "Function '{0}' parameter {1} is error!" , "DEC2HEX" , 2 ) ; if ( args2 . IsError ) { return args2 ; } }
916890 if ( num . Length > args2 . IntValue ) {
917891 return Operand . Create ( num . PadLeft ( args2 . IntValue , '0' ) ) ;
918892 }
0 commit comments