Beispiel #1
0
        /// <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)));
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
        /// <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);
        }
Beispiel #4
0
        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);
        }