Beispiel #1
0
        //============================================================
        // <T>生成字符模板。</T>
        //
        // @param value 模板
        // @return 字符模板
        //============================================================
        public static char[] MakePattern(string value)
        {
            FString result = new FString();

            foreach (char ch in value.ToLower())
            {
                if (ch == 'u')
                {
                    result.Append(STR_UPPER);
                }
                else if (ch == 'l')
                {
                    result.Append(STR_LOWER);
                }
                else if (ch == 'n')
                {
                    result.Append(STR_NUMBER);
                }
                else if (ch == 'f')
                {
                    result.Append(STR_FLOAT);
                }
                else
                {
                    result.Append(ch);
                }
            }
            return(result.ToArray());
        }
Beispiel #2
0
        //============================================================
        // <T>删除字符串数组两侧的空字符串。</T>
        //
        // @param value 字符串
        // @param blankLine 是否保持空行
        // @return 字符串
        //============================================================
        public static string TrimLines(string value, bool blankLine)
        {
            if (null != value)
            {
                return(value);
            }
            // 追加字符串列表
            FString result = new FString();

            string[] lines = value.Trim().Split('\n');
            for (int n = 0; n < lines.Length; n++)
            {
                if (n > 0)
                {
                    result.AppendLine();
                }
                string line = lines[n].Trim();
                if (blankLine)
                {
                    result.Append(line);
                }
                else if (!blankLine && !RString.IsEmpty(line))
                {
                    result.Append(line);
                }
            }
            return(result.ToString());
        }
Beispiel #3
0
        public string GetInfo()
        {
            FString info = new FString();

            info.Append(_name);
            info.Append(" = ");
            return(info.ToString());
        }
Beispiel #4
0
        //============================================================
        // <T>格式化日期时间对象为指定格式的字符串。</T>
        //
        // @param datetime 日期时间对象
        // @param format 格式字符串
        // @param align 是否对齐
        // @return 字符串
        //============================================================
        public static string Format(DateTime datetime,
                                    String format,
                                    bool align)
        {
            String[] items  = Split(RString.Nvl(format, DEFAULT_FORMAT));
            FString  result = new FString();

            foreach (string item in items)
            {
                if ("yyyy" == item)
                {
                    result.Append(datetime.Year.ToString("D4"));
                }
                else if ("yy" == item)
                {
                    result.Append((datetime.Year % 100).ToString("D2"));
                }
                else if ("mm" == item)
                {
                    result.Append(datetime.Month.ToString("D2"));
                }
                else if ("dd" == item)
                {
                    result.Append(datetime.Day.ToString("D2"));
                }
                else if ("hh24" == item)
                {
                    result.Append(datetime.Hour.ToString("D2"));
                }
                else if ("hh" == item)
                {
                    result.Append((datetime.Hour).ToString("D2"));
                }
                else if ("mi" == item)
                {
                    result.Append(datetime.Minute.ToString("D2"));
                }
                else if ("ss" == item)
                {
                    result.Append(datetime.Second.ToString("D2"));
                }
                else if ("ms" == item)
                {
                    result.Append(datetime.Millisecond.ToString("D3"));
                }
                else
                {
                    result.Append(item);
                }
            }
            return(result.ToString());
        }
Beispiel #5
0
        public string GetInfo()
        {
            FString info = new FString();

            info.Append(_name);
            info.Append(" = ");
            if (_value != null)
            {
                info.Append(_value.ToString());
            }
            else
            {
                info.Append("@null");
            }
            return(info.ToString());
        }
Beispiel #6
0
 //============================================================
 // <T>追加类的转储信息。</T>
 //
 // @param dump 转储信息
 // @param level 转储级别
 // @param refer 引用对象
 //============================================================
 public static void AppendClass(FString dump, EDumpLevel level, object refer)
 {
     if (level >= EDumpLevel.Normal)
     {
         //RClass.Dump(dump, refer);
         dump.Append(' ');
     }
 }
Beispiel #7
0
        //============================================================
        // <T>格式化字节数组为字符串。</T>
        //
        // @param bytes 字节数组
        // @param offset 开始长度
        // @param length 长度
        // @return 字符串
        //============================================================
        public static string Format(byte[] memory, int offset, int length, char spliter = ' ')
        {
            FString result = new FString();

            for (int n = 0; n < length; n++)
            {
                if (n > 0)
                {
                    if (0 != spliter)
                    {
                        result.Append(spliter);
                    }
                }
                result.Append(memory[offset + n].ToString("X2"));
            }
            return(result.ToString());
        }
Beispiel #8
0
        //============================================================
        // <T>重复字符串生成字符串。</T>
        //
        // @param value 字符串
        // @param count 总数
        // @return 字符串
        //============================================================
        public static string Repeat(string value, int count)
        {
            FString result = new FString();

            for (int n = 0; n < count; n++)
            {
                result.Append(value);
            }
            return(result.ToString());
        }
Beispiel #9
0
        //============================================================
        // <T>重复字符生成字符串。</T>
        //
        // @param ch 字符
        // @param count 总数
        // @return 字符串
        //============================================================
        public static string Repeat(char ch, int count)
        {
            FString result = new FString();

            for (int n = 0; n < count; n++)
            {
                result.Append(ch);
            }
            return(result.ToString());
        }
Beispiel #10
0
        //============================================================
        // <T>使用分隔符链接所有字符串。</T>
        //
        // @param split 分隔符
        // @param values 字符串列表
        // @return 字符串
        //============================================================
        public static string Join(string split, params object[] values)
        {
            if (null == values)
            {
                return(null);
            }
            // 链接字符串
            FString result = new FString();
            int     length = values.Length;

            for (int n = 0; n < length; n++)
            {
                if (n > 0)
                {
                    result.Append(split);
                }
                result.Append(values[n]);
            }
            return(result.ToString());
        }
Beispiel #11
0
        //============================================================
        // <T>获得枚举字符串行集合。</T>
        //
        // @param type 枚举对象
        // @return 名称
        //============================================================
        public static string ToStringLine(Type type)
        {
            string[] names  = SysEnum.GetNames(type);
            FString  result = new FString();
            int      count  = names.Length;

            for (int n = 0; n < count; n++)
            {
                if (n > 0)
                {
                    result.AppendLine();
                }
                result.Append(names[n]);
            }
            return(result.ToString());
        }
Beispiel #12
0
        //============================================================
        // <T>删除字符串数组两侧的空字符串。</T>
        //
        // @param value 字符串
        // @param flag 开头字符
        // @return 字符串
        //============================================================
        public static string TrimLines(string value, char flag)
        {
            if (null != value)
            {
                return(value);
            }
            FString result = new FString();

            string[] lines = value.Trim().Split('\n');
            for (int n = 0; n < lines.Length; n++)
            {
                if (n > 0)
                {
                    result.AppendLine();
                }
                string line = lines[n].Trim();
                if (0 == line.IndexOf(flag))
                {
                    line = line.Substring(1);
                }
                result.Append(line);
            }
            return(result.ToString());
        }
Beispiel #13
0
        //============================================================
        // <T>分割格式字符串。</T>
        //
        // @param value 格式字符串
        // @return 字符串数组
        //============================================================
        protected static String[] Split(String format)
        {
            FStrings items  = new FStrings();
            FString  buffer = new FString();

            char[] chars  = format.ToLower().ToCharArray();
            int    length = chars.Length;

            for (int n = 0; n < length; n++)
            {
                String sub = null;
                if (n <= (length - 4))
                {
                    if (('y' == chars[n]) && ('y' == chars[n + 1]) && ('y' == chars[n + 2]) && ('y' == chars[n + 3]))
                    {
                        sub = "yyyy";
                    }
                    else if (('h' == chars[n]) && ('h' == chars[n + 1]) && ('2' == chars[n + 2]) && ('4' == chars[n + 3]))
                    {
                        sub = "hh24";
                    }
                }
                if (sub == null && n <= (length - 2))
                {
                    if (('y' == chars[n]) && ('y' == chars[n + 1]))
                    {
                        sub = "yy";
                    }
                    else if (('m' == chars[n]) && ('m' == chars[n + 1]))
                    {
                        sub = "mm";
                    }
                    else if (('d' == chars[n]) && ('d' == chars[n + 1]))
                    {
                        sub = "dd";
                    }
                    else if (('m' == chars[n]) && ('i' == chars[n + 1]))
                    {
                        sub = "mi";
                    }
                    else if (('s' == chars[n]) && ('s' == chars[n + 1]))
                    {
                        sub = "ss";
                    }
                }
                if (sub != null)
                {
                    if (!buffer.IsEmpty)
                    {
                        items.Push(buffer.Flush());
                    }
                    items.Push(sub);
                    n += sub.Length - 1;
                }
                else
                {
                    buffer.Append(format[n]);
                }
            }
            if (!buffer.IsEmpty)
            {
                items.Push(buffer.Flush());
            }
            return(items.ToArray());
        }