/// <summary> /// Split a string into seperate string not bigger than a specified size /// </summary> /// <param name="str">string to split</param> /// <param name="maxsize">maximum string size</param> /// <param name="opt">split options</param> /// <returns>array of strings</returns> public static string[] SplitOnSize(string str, int maxsize, SplitOnSizeOptions opt) { List <string> strs = new List <string>(); SplitOnSizeOptions options = opt; while (str.Length > maxsize) { int ls = maxsize; // note cannot use HasFlag because HasFlag is for .NET framework >= 4.0 if ((options & SplitOnSizeOptions.WholeWords) != 0) { if (ls < (str.Length - 1)) { if (str[ls] != ' ') { ls++; } } } string temp = str.Substring(0, ls); str = str.Substring(ls); strs.Add(temp); } if (str.Length != 0) { strs.Add(str); } return(strs.ToArray()); }
/// <summary> /// string extension: Split a string into seperate string not bigger than a specified size /// </summary> /// <param name="str">string to split</param> /// <param name="maxsize">maximum string size</param> /// <param name="opt">split options</param> /// <returns>array of strings</returns> public static string[] SplitOnSize(this string str, int maxsize, SplitOnSizeOptions opt) { return(StringUtils.SplitOnSize(str, maxsize, opt)); }