コード例 #1
0
        public override bool Write(IDataModel model, ModelDelta token, int start, ref string data)
        {
            if (data.StartsWith("(") && data.EndsWith(")"))
            {
                data = data.Substring(1, data.Length - 2);
            }
            var remainder = string.Empty;

            if (Type != ElementContentType.PCS)
            {
                var tokens = TableStreamRun.Tokenize(data);
                remainder = ", ".Join(tokens.Skip(1));
                data      = tokens[0];
            }

            data = data.Trim();
            if (data.StartsWith("0x"))
            {
                data = data.Substring(2);
            }
            if (!int.TryParse(data, NumberStyles.HexNumber, CultureInfo.CurrentCulture, out var intValue))
            {
                intValue = 0;
            }
            data = remainder;
            return(model.WriteMultiByteValue(start, Length, token, intValue));
        }
コード例 #2
0
        public override bool Write(IDataModel model, ModelDelta token, int start, ref string data)
        {
            if (data.StartsWith("(") && data.EndsWith(")"))
            {
                data = data.Substring(1, data.Length - 2);
            }
            var tokens    = TableStreamRun.Tokenize(data);
            var remainder = ", ".Join(tokens.Skip(1));

            if (tokens.Count == 0)
            {
                return(false);
            }
            data = tokens[0];
            bool result;

            if (!TryParse(model, data, out int value))
            {
                result = base.Write(model, token, start, ref data);
            }
            else
            {
                data   = value.ToString();
                result = base.Write(model, token, start, ref data);
            }

            data = remainder;
            return(result);
        }