//using System; //using System.Collections.Generic; //using System.Diagnostics; //using System.Globalization; //using System.IO; //using System.Linq; //using System.Reflection; //using System.Runtime.CompilerServices; //using System.Security; //using System.Text; //using System.Threading.Tasks; //using System.Collections; //namespace Project //{ // public class CParser // { // private string SrcText; // private ArrayList CommandList; // //여기엔 Scommand 가 들어있다. // private System.Text.StringBuilder ErrMsg; // // Public Log As System.Text.StringBuilder // public event MessageEventHandler Message; // public void raiseMessage(string m, Boolean err) // { // if (Message != null) Message(m, err); // } // public delegate void MessageEventHandler(string M, bool Err); // public CParser() // { // } // public new string toString // { // get // { // if (this.isError == false) // { // object Value = ParseCommand(SrcText, true); // return Value.ToString(); // } // return ""; // } // } // public new object GetData // { // get // { // if (this.isError == false) // { // object Value = ParseCommand(SrcText, true); // return Value; // } // return null; // } // } // public bool isError // { // get // { // if (this.ErrMsg.ToString() != "") // return true; // else // return false; // } // } // private void Check_error(string vSrcText) // { // // Return '//임시로 해제 // int Lcnt = 0; // int Rcnt = 0; // ErrMsg = new System.Text.StringBuilder(); // return; // // foreach (string EXP_ in vSrcText.Split(';')) // //각명령을 ;로 구분되어잇기떄문에 구분됫것들이 각자의 명령이다. // { // var EXP = EXP_.Trim(); // Lcnt = EXP.ToCharArray().Where(t => t == '(').Count();// MyString.GetInCountChar(EXP, "("); // //파라미터 시작갯수 // Rcnt = EXP.ToCharArray().Where(t => t == ')').Count();// MyString.GetInCountChar(EXP, ")"); // //파라미터 종료갯수 // if (Lcnt != Rcnt) // ErrMsg.AppendLine(EXP + "파라미터 시작기호 ( 와 종료기호 ) 가 일치하지 않습니다"); // Lcnt = EXP.ToCharArray().Where(t => t == '"').Count();// MyString.GetInCountChar(EXP, Strings.Chr(34)); // //파라미터 시작갯수 // Rcnt = EXP.ToCharArray().Where(t => t == '"').Count();// MyString.GetInCountChar(EXP, Strings.Chr(34)); // //파라미터 종료갯수 // if (Lcnt != Rcnt) // ErrMsg.AppendLine(EXP + "문자열묶음기호(\")가 일치하지 않습니다"); // } // } // public virtual void CommandText(string s) // { // SrcText = s; // Check_error(SrcText); // if (this.isError) // UTIL.MsgE(ErrMsg.ToString());// Interaction.MsgBox(ErrMsg.ToString(), MsgBoxStyle.Critical, "오류"); // } // protected string Buffer1 = ""; // protected string Buffer2 = ""; // protected string Buffer3 = ""; // protected string Buffer4 = ""; // private object ParseCommand(string vSrcText, bool isfirst, object NEwValue = null) // { // // //각명령어를 쪼갠다. // // //중첩명령어의 경우에도 쪼갠다. // // Dim Cmd As String '//명령어 // // Dim Param As String '//명렁파라미터 // // Dim target As String '//타겏값 // // Dim Str As String // // Dim Line As String // if (isfirst) // this.CommandList = new ArrayList();// //처음에만 이것을 초기화한다. // vSrcText = vSrcText.Replace("\r\n","\n");//Constants.vbCrLf, Constants.vbLf); // vSrcText = vSrcText.Replace("\r","\n");//Constants.vbCr, Constants.vbLf); // vSrcText = vSrcText.Replace("\n\n","\n");//Constants.vbLf + Constants.vbLf, Constants.vbLf); // vSrcText = vSrcText.Replace(";","\n");// Constants.vbLf); // raiseMessage("Command Expression : " + vSrcText, false); // foreach (string EXP_ in vSrcText.Split('\n')) // //각명령을 ;로 구분되어잇기떄문에 구분됫것들이 각자의 명령이다. // { // if (EXP_.Trim() == "") // continue; // if (EXP_.Length < 3) // continue; // if (EXP_.Substring(0, 2) == "//") // continue; // // Me.Log.AppendLine("New Line Value is : " & NEwValue.ToString) // var EXP = EXP_.Trim(); // bool CmdFind = false; // //명령어를다 찾앗는가? // bool ParamFind = false; // System.Text.StringBuilder NewParam = new System.Text.StringBuilder(); // bool Isfunction = false; // bool IsFunctionEnd = false; // short InnerFuncCnt = 0; // System.Text.StringBuilder NewCmd = new System.Text.StringBuilder(); // ArrayList ParamList = new ArrayList(); // bool IsTextInner = false; // if (EXP != "") // { // // My.Computer.FileSystem.WriteAllText("c:\command.txT", "expressiong=" & EXP, True) // if (EXP.Substring(0, 1) == "\"")//Strings.Chr(34)) // NEwValue = EXP; // //해당문자자체가 값이된다. // else // // //파라미터란 ()사이의 명령어이며, 콤마(,)로 분리된다 // // //단 "" 사이의 콤마는 인정하지않는다. // foreach (char C in EXP.ToCharArray()) // { // if (CmdFind == false) // { // if (C == '(') // CmdFind = true; // else // NewCmd.Append(C); // } // else // switch (C) // { // case ',': // { // if (IsTextInner) // NewParam.Append(C); // else if (Isfunction == false) // { // if (IsFunctionEnd) // ParamList.Add(NewParam.ToString()); // //파라미터를 찾았으므로 파람리스트에 추가한다. // else // ParamList.Add(NewParam.ToString());// //파라미터를 찾았으므로 파람리스트에 추가한다. // NewParam = new System.Text.StringBuilder(); // //파라미터부분 초기화 // IsFunctionEnd = false; // } // else // NewParam.Append(C); // break; // } // case '(': // { // if (IsTextInner) // NewParam.Append(C); // else if (Isfunction) // { // InnerFuncCnt += 1; // NewParam.Append(C); // } // else // { // Isfunction = true; // //이파라미터가 또 함수를 가지고있다 ㅠ_ㅠ; // NewParam.Append(C); // } // break; // } // case ')': // { // if (IsTextInner) // NewParam.Append(C); // else if (Isfunction) // { // if (InnerFuncCnt > 0) // { // InnerFuncCnt -= 1; // NewParam.Append(C); // } // else // { // Isfunction = false; // //이파라미터가 또 함수를 가지고있다 ㅠ_ㅠ; // IsFunctionEnd = true; // NewParam.Append(C); // } // } // else // { // if (NewParam.ToString() != "") // ParamList.Add(NewParam.ToString()); // //파라미터를 찾았으므로 파람리스트에 추가한다. // NewParam = new System.Text.StringBuilder(); // //파라미터부분 초기화 // IsFunctionEnd = false; // // MsgBox("명령어실행 : " & NewCmd.ToString) // // //각 파라미터들의 값을 가져온다 // raiseMessage("New COmmand : " + NewCmd.ToString() + " paramCount=" + ParamList.Count, false); // switch (NewCmd.ToString().ToUpper()) // { // case "MUL": // { // if (ParamList.Count != 2) // raiseMessage("MUL 함수에 2개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); // // Me.Log.AppendLine("MUL " & Param1 & vbTab & Param2) // if (Param1.ToString().IsNumeric()==false || Param2.ToString().IsNumeric()==false) // // Me.Log.AppendLine("MUL param error support only number") // return 0; // else // NEwValue = System.Convert.ToDecimal(Param1) * System.Convert.ToDecimal(Param2); // } // break; // } // case "PLUS": // { // if (ParamList.Count != 2) // raiseMessage("PLUS 함수에 2개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); // if (Param1.ToString().IsNumeric()==false || Param2.ToString().IsNumeric()==false) // return 0; // else // NEwValue = System.Convert.ToDecimal(Param1) + System.Convert.ToDecimal(Param2); // } // break; // } // case "MINUS": // { // if (ParamList.Count != 2) // raiseMessage("MINUS 함수에 2개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); // // Me.Log.AppendLine("PLUS " & Param1 & vbTab & Param2) // if (Param1.ToString().IsNumeric()==false || Param2.ToString().IsNumeric()==false ) // // Me.Log.AppendLine("MINUS param error support only number") // return 0; // else // NEwValue = System.Convert.ToDecimal(Param1) - System.Convert.ToDecimal(Param2); // } // break; // } // case "ISEQULE": // case "EQ" // //둘이 같은지 반환해준다. // : // { // if (ParamList.Count != 2) // raiseMessage("ISEQULE 함수에 2개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); // // MsgBox(ParamList[1].ToString & "/" & NewValue) // // Me.Log.AppendLine("ISEQULE " & Param1 & vbTab & Param2) // if (Param1 != Param2) // { // raiseMessage("ISEQULE RETURN FALSE", true); // return false; // } // else // { // raiseMessage("ISEQULE RETURN TRUE", true); // return true; // } // } // break; // } // case "NEQ": // case "DIFF" // //둘이 다르면 true 반환해준다. // : // { // if (ParamList.Count != 2) // raiseMessage("DIFF(NEQ) 함수에 2개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); // // MsgBox(ParamList[1].ToString & "/" & NewValue) // // Me.Log.AppendLine("ISEQULE " & Param1 & vbTab & Param2) // if (Param1 != Param2) // { // raiseMessage("DIFF RETURN True", true); // return true; // } // else // { // raiseMessage("DIFF RETURN False", true); // return false; // } // } // break; // } // case "IF": // { // if (ParamList.Count != 2) // raiseMessage("IF 함수에 2개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); // if (Param1.ToString().ToLower() != Param2.ToString().ToLower()) // { // raiseMessage("IF문 조건이 서로 다르므로 실행을 종료합니다.", false); // return ""; // //해당구문전체를 모두 FALSE한다. // } // else // // RaiseEvent RaiseMessage("IF문 조건이 동일 True Case IN(" & Param1 & " " & Param2 & ")") // Console.WriteLine("sdf"); // } // break; // } // case "IFNOT": // { // if (ParamList.Count != 2) // raiseMessage("IFNOT 함수에 2개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); // if (Param1 == Param2) // { // raiseMessage("IF문 조건이 서로 같으므로 실행을 종료합니다.", true); // return ""; // //해당구문전체를 모두 FALSE한다. // } // else // { // } // } // break; // } // case "MSGBOX": // case "MSG": // { // if (ParamList.Count != 1) // raiseMessage("MSGBOX 함수에 1개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // UTIL.MsgE(Param1, MsgBoxStyle.Information, "확인"); // } // break; // } // case "ISNUM": // { // if (ParamList.Count != 1) // raiseMessage("ISNUM 함수에 1개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // NEwValue = Information.IsNumeric(Param1); // } // break; // } // case "NVL": // { // if (ParamList.Count != 2) // raiseMessage("ISEMPTY 함수에 2개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); // if (Param1.Trim() == "") // NEwValue = Param2; // else // NEwValue = Param1; // } // break; // } // case "INDEXOF": // { // if (ParamList.Count != 2) // raiseMessage("INDEXOF 함수에 2개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); // NEwValue = Param1.IndexOf(Param2) + 1; // } // break; // } // case "LINDEXOF": // { // if (ParamList.Count != 2) // raiseMessage("LINDEXOF 함수에 2개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); // NEwValue = Param1.LastIndexOf(Param2) + 1; // } // break; // } // case "REPLACE": // { // if (ParamList.Count != 3) // raiseMessage("REPLACE 함수에 3개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); // object Param3 = RunParam(ParamList[2].ToString(), NEwValue.ToString()); // NEwValue = Param1.ToString().Replace(Param2, Param3); // } // break; // } // case "REMOVECHAR": // { // if (ParamList.Count != 2) // raiseMessage("REMOVESPACE 함수에 1개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); // NEwValue = Param1.Trim(Param2.ToCharArray()).ToString().Trim(); // } // break; // } // case "REMOVESCHAR" // //특수기호삭제한다. // : // { // if (ParamList.Count != 1) // raiseMessage("REMOVESCHAR 함수에 1개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // System.Text.StringBuilder NewString = new System.Text.StringBuilder(); // foreach (char Cc in Param1.ToCharArray()) // { // switch (Strings.Asc(Cc)) // { // case object _ when 65 <= Strings.Asc(Cc) && Strings.Asc(Cc) <= 90: // case object _ when 48 <= Strings.Asc(Cc) && Strings.Asc(Cc) <= 57: // case object _ when 97 <= Strings.Asc(Cc) && Strings.Asc(Cc) <= 122: // case object _ when Strings.Asc(Cc) < 0: // case 32: // { // NewString.Append(Cc); // break; // } // } // } // NEwValue = NewString.ToString(); // } // break; // } // case "REMOVESPACE": // { // if (ParamList.Count != 1) // raiseMessage("REMOVESPACE 함수에 1개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // NEwValue = Param1.Replace(Strings.Space(1), Constants.vbNullString); // } // break; // } // case "TOUPPER": // { // if (ParamList.Count != 1) // raiseMessage("TOUPPER 함수에 1개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // NEwValue = Param1.ToUpper(); // } // break; // } // case "TRIM": // { // if (ParamList.Count != 1) // raiseMessage("TRIM 함수에 1개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // NEwValue = Param1.Trim(); // } // break; // } // case "TOLOWER": // { // if (ParamList.Count != 1) // raiseMessage("TOLOWER 함수에 1개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // NEwValue = Param1.ToLower(); // } // break; // } // case "LENB": // { // if (ParamList.Count != 1) // raiseMessage("LENB 함수에 1개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // NEwValue = System.Text.Encoding.Default.GetByteCount(Param1.ToString()); // } // break; // } // case "LEN": // { // if (ParamList.Count != 1) // raiseMessage("LEN 함수에 1개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // NEwValue = Param1.Length; // } // break; // } // case "RIGHTADD": // case "ADDRIGHT": // { // if (ParamList.Count != 2) // raiseMessage("RIGHTADD 함수에 2개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); // NEwValue = Param1 + Param2; // } // break; // } // case "ADDNUM": // { // if (ParamList.Count != 2) // raiseMessage("ADDNUM 함수에 2개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); // NEwValue = Param1 + Param2; // } // break; // } // case "LEFTADD": // case "ADDLEFT": // { // if (ParamList.Count != 2) // raiseMessage("LEFTADD 함수에 2개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); // NEwValue = Param2 + Param1; // } // break; // } // case "TODATE": // { // if (ParamList.Count != 1) // raiseMessage("TODATE 함수에 1개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // NEwValue = ((DateTime)Param1); // } // break; // } // case "TOSTRING": // { // if (ParamList.Count != 1) // raiseMessage("TOSTRING 함수에 1개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // NEwValue = (System.Convert.ToString(Param1)); // } // break; // } // case "TOINT": // { // if (ParamList.Count != 1) // raiseMessage("TOINT 함수에 1개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // NEwValue = Param1; // } // break; // } // case "NOW": // { // NEwValue = DateTime.Now; // break; // } // case "SUBSTRING": // case "SUBSTR" // //2개의 파라미터를 사용한다. // : // { // if (ParamList.Count < 2) // raiseMessage("SUBSTRING 함수에 2개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); // object param3 = ""; // if (ParamList.Count == 3) // param3 = RunParam(ParamList[2].ToString(), NEwValue.ToString()); // if (Param1.Trim() == "" || Information.IsNumeric(Param2) == false || System.Convert.ToInt32(Param2) < 0) // NEwValue = ""; // else if (param3 != "") // { // // //길이를 참고한다. 너무 긴건 처리하지 못하므로 // if (System.Convert.ToInt32(Param2) + System.Convert.ToInt32(param3) > Param1.Length) // NEwValue = Param1.Substring(Param2, (Param1.Length - System.Convert.ToInt32(Param2))); // else // NEwValue = Param1.Substring(Param2, param3); // } // else // NEwValue = Param1.Substring(Param2); // } // break; // } // case "SAVE1": // { // if (ParamList.Count < 1) // UTIL.MsgE("SAVE1 함수에 1개의 파라미터가 없습니다"); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // Buffer1 = Param1; // } // break; // } // case "SAVE2": // { // if (ParamList.Count < 1) // UTIL.MsgE("SAVE1 함수에 1개의 파라미터가 없습니다"); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // Buffer2 = Param1; // } // break; // } // case "SAVE3": // { // if (ParamList.Count < 1) // UTIL.MsgE("SAVE1 함수에 1개의 파라미터가 없습니다"); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // Buffer3 = Param1; // } // break; // } // case "SAVE4": // { // if (ParamList.Count < 1) // UTIL.MsgE("SAVE1 함수에 1개의 파라미터가 없습니다"); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // Buffer4 = Param1; // } // break; // } // case "LEFT" // //2개의 파라미터를 사용한다. // : // { // if (ParamList.Count != 2) // raiseMessage("LEFT 함수에 2개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); // NEwValue = Strings.Left(Param1, Param2); // } // break; // } // case "RIGHT" // //2개의 파라미터를 사용한다. // : // { // if (ParamList.Count != 2) // raiseMessage("RIGHT 함수에 2개의 파라미터가 없습니다", true); // else // { // var Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()).ToString(); // var Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()).ToString(); // NEwValue = Param1.Substring(Param1.Length-int.Parse(Param2));// Strings.Right(Param1, Param2); // } // break; // } // case "MID": // //2개의 파라미터를 사용한다. // { // if (ParamList.Count != 3) // raiseMessage("MID 함수에 3개의 파라미터가 없습니다", true); // else // { // var Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // var Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); // var Param3 = RunParam(ParamList[2].ToString(), NEwValue.ToString()); // if (Param2 == "-1" || int.Parse(Param3.ToString()) < 1) // { // raiseMessage("MID 함수의 시작위치값은 0이상이여야합니다\nMID 함수의 추출길이는 1이상이여야합니다", true); // NEwValue = ""; // } // else // NEwValue = Param1.ToString().Substring(int.Parse(Param2.ToString()), int.Parse(Param3.ToString())); // } // break; // } // case "FORMAT": // { // if (ParamList.Count != 2) // raiseMessage("FORMAT 함수에 2개의 파라미터가 없습니다", true); // else // { // object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); // object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); // // MsgBox(Param1 & "/" & Param2) // if(Param1.GetType()== typeof(int)) // NEwValue = ((int)Param1).ToString(Param2.ToString()); // else // NEwValue = Param1.ToString(); // } // break; // } // default: // { // //raiseMessage("미지원 함수 입니다") // raiseMessage("미지원 : " + NewCmd.ToString(),true); // break; // } // } // } // break; // } // default: // { // if (C == '"') // { // IsTextInner = !IsTextInner; // NewParam.Append(C); // } // else if (IsFunctionEnd) // raiseMessage("내부한수 종결문다음에 , 가 와야하는데 " + C + "가 왔습니다", true); // else // NewParam.Append(C); // break; // } // } // } // } // } // // Me.Log.AppendLine("ParseCOmmand Return : " & NEwValue.ToString) // return NEwValue; // } // public object RunParam(string vParam, string SrcValue) // { // // My.Computer.FileSystem.WriteAllText("c:\log.txT", "runparam param=" & vParam, True) // vParam = vParam.Trim(); // if (vParam == "") // return ""; // if (vParam.Substring(0, 1) == "\"") // return vParam.Replace("\"", ""); // if (vParam.ToUpper() == "TRUE") // return true; // if (vParam.ToUpper() == "FALSE") // return false; // // //시작값이 숫자라면 이건 숫자값이다. // if (vParam.Substring(0, 1).IsNumeric() == true) // return vParam; // // //시작값이 # 라면 원본 데이터이다. // if (vParam == "#") // return SrcValue; // if (vParam == "#1") // return Buffer1; // if (vParam == "#2") // return Buffer2; // if (vParam == "#3") // return Buffer3; // if (vParam == "#4") // return Buffer4; // // //시작값이 숫자도 일반 문자도 공백도 아니라면 영문단어이다. // // // ( 가 있다면 함수이므로 함수를 실행한다. // switch (vParam.ToUpper()) // { // case "NOW" // //date 타입을 반환한다. // : // { // return DateTime.Now; // } // default: // { // if (vParam.IndexOf("(") != -1) // return this.ParseCommand(vParam, false, SrcValue); // else // return "";// return RunUnknown(vParam, SrcValue);// //비지원 목록으로 반환한다. // break; // } // } // return ""; // } // } //}