Esempio n. 1
0
            public static IEnumerable <string> ClipString(string src, int width)
            {
                if (width <= 0)
                {
                    yield return(src);

                    yield break;
                }

                StringBuilder sb = new StringBuilder();
                int           curLineLen = 0, curLen;

                foreach (char i in src)
                {
                    curLen = ConsoleText.CalcCharLength(i);

                    if (curLineLen + curLen > width)
                    {
                        yield return(sb.ToString());

                        sb.Clear();
                        sb.Append(i);
                        curLineLen = curLen;
                    }
                    else
                    {
                        sb.Append(i);
                        curLineLen += curLen;
                    }
                }

                if (sb.Length > 0)
                {
                    yield return(sb.ToString());
                }
            }