/// <summary> /// Indicates whether the given extension matches any of the extension in this collection. /// </summary> /// <param name="extension">The extension to match. Can contain wildcards.</param> /// <returns>True if the given extension matches, false otherwise.</returns> public bool Contains(string extension) { var normalized = NormalizeExtension(extension); var pattern = new Regex(normalized.Replace(".", "[.]").Replace("*", ".*")); return(SingleExtensions.Any(x => pattern.IsMatch(x) || new Regex(x.Replace(".", "[.]").Replace("*", ".*")).IsMatch(normalized))); }
/// <summary>Converts the string representation of a number to a half-precision floating-point equivalent. Returns success.</summary> /// <param name="s">String representation of the number to convert.</param> /// <param name="style">Specifies the format of s.</param> /// <param name="provider">Culture-specific formatting information.</param> /// <param name="result">The Half instance to write to.</param> /// <returns>Success.</returns> public static bool TryParse(string s, System.Globalization.NumberStyles style, IFormatProvider provider, out Half result) { float f; bool b = SingleExtensions.TryParse(s, style, provider, out f); result = (Half)f; return(b); }
/// <summary>Converts the string representation of a number to a half-precision floating-point equivalent. Returns success.</summary> /// <param name="s">String representation of the number to convert.</param> /// <param name="result">The Half instance to write to.</param> /// <returns>Success.</returns> public static bool TryParse(string s, out Half result) { float f; bool b = SingleExtensions.TryParse(s, out f); result = (Half)f; return(b); }
public static string ValueToString(object Value, S7DataRowType DataType) { if (DataType == S7DataRowType.S5_KY) { return(((UInt16)Value / 256).ToString().PadLeft(3, '0') + "," + ((UInt16)Value % 256).ToString().PadLeft(3, '0')); } else if (DataType == S7DataRowType.S5_KF) { return(((Int16)Value > 0 ? "+" : "") + Value.ToString()); } else if (DataType == S7DataRowType.S5_KH) { return(((UInt16)Value).ToString("X", NumberFormatInfo.CurrentInfo).PadLeft(4, '0')); } else if (DataType == S7DataRowType.S5_KG) { return(SingleExtensions.ToS5(((float)Value))); } else if (DataType == S7DataRowType.S5_C || DataType == S7DataRowType.S5_KC) { return("'" + ((string)Value) + "'"); //.PadLeft(4, ' ') } else if (DataType == S7DataRowType.S5_KC) { return("'" + ((string)Value).PadLeft(2, ' ') + "'"); } else if (DataType == S7DataRowType.S5_KT) { return(Helper.GetS5TimeFromTimeSpan(((TimeSpan)Value))); } else if (DataType == S7DataRowType.S5_KM) { var bt = BitConverter.GetBytes((UInt16)Value); string ret = ""; foreach (byte b in bt) { if (ret != "") { ret = " " + ret; } ret = libnodave.dec2bin(b) + ret; } return(ret); } else if (DataType == S7DataRowType.WORD) { return("W#16#" + ((UInt16)Value).ToString("X", NumberFormatInfo.CurrentInfo)); } else if (DataType == S7DataRowType.BYTE) { return("B#16#" + ((byte)Value).ToString("X", NumberFormatInfo.CurrentInfo)); } else if (DataType == S7DataRowType.DWORD) { return("DW#16#" + ((UInt32)Value).ToString("X", NumberFormatInfo.CurrentInfo)); } else if (DataType == S7DataRowType.INT) { return(((Int16)Value).ToString()); } else if (DataType == S7DataRowType.DINT) { return("L#" + ((Int32)Value).ToString()); } else if (DataType == S7DataRowType.REAL) { return(((DateTime)Value).ToString()); } else if (DataType == S7DataRowType.S5TIME) { var bt = new byte[2]; libnodave.putS5Timeat(bt, 0, (TimeSpan)Value); return(Helper.GetS5Time(bt[0], bt[1])); } else if (DataType == S7DataRowType.TIME) { var tm = (TimeSpan)Value; var ret = new StringBuilder("T#"); if (tm.TotalMilliseconds < 0) { ret.Append("-"); } if (tm.Days != 0) { ret.Append(tm.Days + "D"); } if (tm.Hours != 0) { ret.Append(tm.Hours + "H"); } if (tm.Minutes != 0) { ret.Append(tm.Minutes + "M"); } if (tm.Seconds != 0) { ret.Append(tm.Seconds + "S"); } if (tm.Milliseconds != 0 || tm.Ticks == 0) { ret.Append(tm.Milliseconds + "MS"); } return(ret.ToString()); } else if (DataType == S7DataRowType.DATE) { DateTime ak = (DateTime)Value; StringBuilder sb = new StringBuilder(); sb.Append("D#"); sb.Append(ak.Year); sb.Append("-"); sb.Append(ak.Month); sb.Append("-"); sb.Append(ak.Day); return(sb.ToString()); } else if (DataType == S7DataRowType.TIME_OF_DAY) { DateTime ak = (DateTime)Value; StringBuilder sb = new StringBuilder(); sb.Append("TOD#"); sb.Append(ak.Hour); sb.Append(":"); sb.Append(ak.Minute); sb.Append(":"); sb.Append(ak.Second); sb.Append("."); sb.Append(ak.Millisecond.ToString().PadRight(3, '0')); return(sb.ToString()); } else if (DataType == S7DataRowType.CHAR) { return(((char)Value).ToString()); } else if (DataType == S7DataRowType.DATE_AND_TIME) { DateTime ak = (DateTime)Value; StringBuilder sb = new StringBuilder(); sb.Append("DT#"); sb.Append(ak.Year.ToString().Substring(2)); sb.Append("-"); sb.Append(ak.Month); sb.Append("-"); sb.Append(ak.Day); sb.Append("-"); sb.Append(ak.Hour); sb.Append(":"); sb.Append(ak.Minute); sb.Append(":"); sb.Append(ak.Second); sb.Append("."); sb.Append(ak.Millisecond.ToString().PadRight(3, '0')); return(sb.ToString()); } else if (DataType == S7DataRowType.STRING) { return(Value.ToString()); } else if (DataType == S7DataRowType.STRUCT) { return(null); } else if (DataType == S7DataRowType.UDT) { return(null); } if (Value != null) { return(Value.ToString()); } return(null); }