Files
ENIG/Cs_HMI/Project/Class/CParser.cs
2025-01-07 16:08:02 +09:00

927 lines
59 KiB
C#

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