using System; using System.Linq; using System.Collections.Generic; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; using INT_LKD.DataStore; namespace INT_LKD { public class Helper { /// /// Double형을 String형으로 변환하여 리턴(소수점 자릿수에 맞춰 0을 채워서 리턴) /// /// Double형 데이터 /// 소수점 자릿수 /// String형 데이터 public static string DoubleToString(double value, int decimalPlaces) { if (decimalPlaces == 0) return string.Format("{0:F0}", value); else if (decimalPlaces == 1) return string.Format("{0:F1}", value); else if (decimalPlaces == 2) return string.Format("{0:F2}", value); else if (decimalPlaces == 3) return string.Format("{0:F3}", value); else if (decimalPlaces == 4) return string.Format("{0:F4}", value); else if (decimalPlaces == 5) return string.Format("{0:F5}", value); else if (decimalPlaces == 6) return string.Format("{0:F6}", value); else if (decimalPlaces == 7) return string.Format("{0:F7}", value); else return "0"; } /// /// 소수점 없는 String 값을 소수점 추가 후 String 값으로 리턴 /// /// 소수점이 없는 값 /// 소수점 자릿수 /// 소수점 자리 추가 데이터 public static string StringToDecimalPlaces(string value, int decimalPlaces) { string ret = ""; double dValue = 0.0; dValue = StringToDouble(value, decimalPlaces); ret = DoubleToString(dValue, decimalPlaces); return ret; } /// /// 소수점 없는 String형 값을 소수점 추가후 Double형으로 리턴(부호가 포함된 String형값) /// /// 소수점이 없는 값 /// 소수점 자릿수 /// Double형 소수점 추가 데이터 public static double StringToDouble(string value, int decimalPlaces) { double dValue = 0.0; string str = "", code = ""; StringBuilder sb = new StringBuilder(); sb.Append(value); try { if (sb.Length > 8) return 0.0; if (sb[0] == '-') { code = "-"; sb.Remove(0, 1); } str = sb.ToString(); str = str.Trim(); sb.Remove(0, sb.Length); sb.Append(str); for (int i = 0; i < decimalPlaces; i++) { if (sb.Length > decimalPlaces) break; sb.Insert(0, "0"); } sb.Insert(sb.Length - decimalPlaces, "."); str = sb.ToString(); str = code + str; dValue = double.Parse(str); return dValue; } catch { return 0.0; } } public static Define.E_ProcessStatus StringToProcessStatus(string value) { int iValue = 0; Define.E_ProcessStatus status; if (value.Length != 2) return Define.E_ProcessStatus._0_None; iValue = int.Parse(value); switch (iValue) { case 0: status = Define.E_ProcessStatus._1_Ready; break; case 1: status = Define.E_ProcessStatus._2_ProductEntry; break; case 2: status = Define.E_ProcessStatus._3_MoveToLeak; break; case 3: status = Define.E_ProcessStatus._4_MoveToCheck; break; case 4: status = Define.E_ProcessStatus._5_ChamberMerge; break; case 5: status = Define.E_ProcessStatus._6_VacuumStart; break; case 6: status = Define.E_ProcessStatus._7_VacuumHold; break; case 7: status = Define.E_ProcessStatus._8_Judgment; break; case 8: status = Define.E_ProcessStatus._9_VacuumBreak; break; case 9: status = Define.E_ProcessStatus._10_ChamberRelease; break; case 10: status = Define.E_ProcessStatus._11_MoveToReady; break; default: status = Define.E_ProcessStatus._0_None; break; } return status; } public static Define.E_JudgmentStatus StringToJudgmentStatus(string value) { Define.E_JudgmentStatus status; if (value.Length != 1) return Define.E_JudgmentStatus.None; switch (value) { case "0": status = Define.E_JudgmentStatus.None; break; case "1": status = Define.E_JudgmentStatus.Pass; break; case "2": status = Define.E_JudgmentStatus.Ng; break; case "3": status = Define.E_JudgmentStatus.Empty; break; case "4": status = Define.E_JudgmentStatus.Error; break; default: status = Define.E_JudgmentStatus.None; break; } return status; } /// /// 2자리에 마춰 공백으로 채움 /// /// /// public static string StringBlankFillDigits2(string value) { if (value.Length == 1) return string.Format(" {0}", value); else if (value.Length == 2) return value; else return " "; } /// /// 4자리에 마춰 공백으로 채움 /// /// /// public static string StringBlankFillDigits4(string value) { if (value.Length == 1) return string.Format(" {0}", value); else if (value.Length == 2) return string.Format(" {0}", value); else if (value.Length == 3) return string.Format(" {0}", value); else if (value.Length == 4) return value; else return " "; } /// /// 5자리에 마춰 공백으로 채움 /// /// /// public static string StringBlankFillDigits5(string value) { if (value.Length == 1) return string.Format(" {0}", value); else if (value.Length == 2) return string.Format(" {0}", value); else if (value.Length == 3) return string.Format(" {0}", value); else if (value.Length == 4) return string.Format(" {0}", value); else if (value.Length == 5) return value; else return " "; } /// /// 6자리에 마춰 공백으로 채움 /// /// /// public static string StringBlankFillDigits6(string value) { if (value.Length == 1) return string.Format(" {0}", value); else if (value.Length == 2) return string.Format(" {0}", value); else if (value.Length == 3) return string.Format(" {0}", value); else if (value.Length == 4) return string.Format(" {0}", value); else if (value.Length == 5) return string.Format(" {0}", value); else if (value.Length == 6) return value; else return " "; } /// /// 7자리에 마춰 공백으로 채움 /// /// /// public static string StringBlankFillDigits7(string value) { if (value.Length == 1) return string.Format(" {0}", value); else if (value.Length == 2) return string.Format(" {0}", value); else if (value.Length == 3) return string.Format(" {0}", value); else if (value.Length == 4) return string.Format(" {0}", value); else if (value.Length == 5) return string.Format(" {0}", value); else if (value.Length == 6) return string.Format(" {0}", value); else if (value.Length == 7) return value; else return " "; } /// /// 8자리에 마춰 공백으로 채움 /// /// /// public static string StringBlankFillDigits8(string value) { if (value.Length == 1) return string.Format(" {0}", value); else if (value.Length == 2) return string.Format(" {0}", value); else if (value.Length == 3) return string.Format(" {0}", value); else if (value.Length == 4) return string.Format(" {0}", value); else if (value.Length == 5) return string.Format(" {0}", value); else if (value.Length == 6) return string.Format(" {0}", value); else if (value.Length == 7) return string.Format(" {0}", value); else if (value.Length == 8) return value; else return " "; } /// /// 4자리에 마춰 공백을 0으로 채움 /// /// /// public static string StringZeroFillDigits4(string value) { if (value.Length == 1) return string.Format("000{0}", value); else if (value.Length == 2) return string.Format("00{0}", value); else if (value.Length == 3) return string.Format("0{0}", value); else if (value.Length == 4) return value; else return "0000"; } public static string ByteToHexString(byte[] array) { string resultHex = ""; foreach (byte byteStr in array) resultHex += string.Format("{0:X2}", byteStr); return resultHex; } } public static class FindByNameUtil { public static T FindByName(this object targetClass, string name) where T : class { System.Reflection.FieldInfo fi = targetClass.GetType().GetField(name, System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); return fi.GetValue(targetClass) as T; } public static T FindByName(this string name, object targetClass) where T : class { System.Reflection.FieldInfo fi = targetClass.GetType().GetField(name, System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); return fi.GetValue(targetClass) as T; } public static System.Windows.Forms.Label Is_Label_From(this string name, object targetClass) { return FindByName(targetClass, name); } public static System.Windows.Forms.TextBox Is_TextBox_From(this string name, object targetClass) { return FindByName(targetClass, name); } public static System.Windows.Forms.TextBox TextBox(string name, object targetClass) { return FindByName(targetClass, name); } public static System.Windows.Forms.Label Label(string name, object targetClass) { return FindByName(targetClass, name); } public static System.Windows.Forms.PictureBox PictureBox(string name, object targetClass) { return FindByName(targetClass, name); } public static SmartX.SmartLabel SmartLabel(string name, object targetClass) { return FindByName(targetClass, name); } public static SmartX.SmartGroupBox SmartGroupBox(string name, object targetClass) { return FindByName(targetClass, name); } public static SmartX.SmartProgressBar SmartProgressBar(string name, object targetClass) { return FindByName(targetClass, name); } public static SmartX.SmartButton SmartButton(string name, object targetClass) { return FindByName(targetClass, name); } public static SmartX.SmartDraw SmartDraw(string name, object targetClass) { return FindByName(targetClass, name); } public static SmartX.SmartListBox SmartListBox(string name, object targetClass) { return FindByName(targetClass, name); } } }