コード例 #1
0
        public string ToFixedSizeString()
        {
            StringBuilder sb = new StringBuilder();

            sb.Append(ID.ToString().PadLeft(10, '0'));
            sb.Append('^');
            sb.Append(INT1.ToString().PadLeft(10, '0'));
            sb.Append('^');
            sb.Append(INT2.ToString().PadLeft(10, '0'));
            sb.Append('^');
            sb.Append(INT3.ToString().PadLeft(10, '0'));
            sb.Append('^');
            sb.Append(DT1.PadLeft(25, '#'));
            sb.Append('^');
            sb.Append(DT2.PadLeft(25, '#'));
            sb.Append('^');
            sb.Append(DT3.PadLeft(25, '#'));
            sb.Append('^');
            sb.Append(VAR1.PadLeft(100, '#'));
            sb.Append('^');
            sb.Append(VAR2.PadLeft(100, '#'));
            sb.Append('^');
            sb.Append(VAR3.PadLeft(100, '#'));

            return(sb.ToString());
        }
コード例 #2
0
        /// <summary>
        /// Converts a value to its XML string representation.
        /// </summary>
        /// <param name="Value">Value</param>
        /// <returns>XML string representation.</returns>
        public string ValueToXmlString(object Value)
        {
            switch (this.dataType)
            {
            case "ui1":
            case "ui2":
            case "ui4":
            case "i1":
            case "i2":
            case "i4":
            case "int":
            case "char":
            case "string":
            case "uri":
            case "uuid":
            default:
                return(Value.ToString());

            case "r4":
            case "r8":
            case "number":
            case "float":
                if (!(Value is double d))
                {
                    if (Value is float f)
                    {
                        d = f;
                    }
                    else if (Value is decimal d2)
                    {
                        d = (double)d2;
                    }
                    else
                    {
                        d = Convert.ToDouble(Value);
                    }
                }

                return(d.ToString().Replace(System.Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator, "."));

            case "fixed.14.4":

                if (Value is double d3)
                {
                    d = d3;
                }
                else if (Value is float f2)
                {
                    d = f2;
                }
                else if (Value is decimal d4)
                {
                    d = (double)d4;
                }
                else
                {
                    d = Convert.ToDouble(Value);
                }

                return(d.ToString("F4").Replace(System.Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator, "."));

            case "date":
                if (!(Value is DateTime DT))
                {
                    DT = Convert.ToDateTime(Value);
                }

                return(DT.ToString("yyyyMMdd"));

            case "dateTime":
                if (!(Value is DateTime DT2))
                {
                    DT2 = Convert.ToDateTime(Value);
                }

                return(DT2.ToString("yyyyMMddTHHmmss"));

            case "dateTime.tz":
                if (Value is DateTimeOffset DTO)
                {
                    string   s    = DTO.ToString("yyyyMMddTHHmmss");
                    TimeSpan Zone = DTO.Offset;

                    if (Zone < TimeSpan.Zero)
                    {
                        s   += "-";
                        Zone = -Zone;
                    }
                    else
                    {
                        s += "+";
                    }

                    return(s + Zone.Hours.ToString("D2") + ":" + Zone.Minutes.ToString("D2"));
                }
                else
                {
                    if (!(Value is DateTime DT3))
                    {
                        DT3 = Convert.ToDateTime(Value);
                    }

                    return(DT3.ToString("yyyyMMddTHHmmss"));
                }

            case "time":
                if (Value is TimeSpan TS)
                {
                    return(TS.Hours.ToString("D2") + ":" + TS.Minutes.ToString("D2") + ":" + TS.Seconds.ToString("D2"));
                }
                else if (Value is DateTime DT4)
                {
                    return(DT4.ToString("HH:mm:ss"));
                }
                else if (TimeSpan.TryParse(Value.ToString(), out TS))
                {
                    return(TS.Hours.ToString("D2") + ":" + TS.Minutes.ToString("D2") + ":" + TS.Seconds.ToString("D2"));
                }
                else
                {
                    DT = Convert.ToDateTime(Value);
                    return(DT.ToString("HH:mm:ss"));
                }

            case "time.tz":
                if (Value is TimeSpan TS2)
                {
                    return(TS2.Hours.ToString("D2") + ":" + TS2.Minutes.ToString("D2") + ":" + TS2.Seconds.ToString("D2"));
                }
                else if (Value is DateTime DT5)
                {
                    return(DT5.ToString("HH:mm:ss"));
                }
                else if (Value is DateTimeOffset DTO2)
                {
                    string   s    = DTO2.ToString("HH:mm:ss");
                    TimeSpan Zone = DTO2.Offset;

                    if (Zone < TimeSpan.Zero)
                    {
                        s   += "-";
                        Zone = -Zone;
                    }
                    else
                    {
                        s += "+";
                    }

                    return(s + Zone.Hours.ToString("D2") + ":" + Zone.Minutes.ToString("D2"));
                }
                else if (TimeSpan.TryParse(Value.ToString(), out TS))
                {
                    return(TS.Hours.ToString("D2") + ":" + TS.Minutes.ToString("D2") + ":" + TS.Seconds.ToString("D2"));
                }
                else
                {
                    DT = Convert.ToDateTime(Value);
                    return(DT.ToString("HH:mm:ss"));
                }

            case "boolean":
                if (!(Value is bool b))
                {
                    b = Convert.ToBoolean(Value);
                }

                return(b ? "1" : "0");

            case "bin.base64":
                if (!(Value is byte[] Bin))
                {
                    Bin = SerializeToBinary(Value);
                }

                return(Convert.ToBase64String(Bin, Base64FormattingOptions.None));

            case "bin.hex":
                Bin = Value as byte[];
                if (Bin is null)
                {
                    Bin = SerializeToBinary(Value);
                }

                StringBuilder sb = new StringBuilder();

                foreach (byte b2 in Bin)
                {
                    sb.Append(b2.ToString("X2"));
                }

                return(sb.ToString());
            }
        }