System.Globalization.DateTimeFormatInfoScanner.SkipWhiteSpacesAndNonLetter C# (CSharp) Method

SkipWhiteSpacesAndNonLetter() static private method

static private SkipWhiteSpacesAndNonLetter ( String pattern, int currentIndex ) : int
pattern String
currentIndex int
return int
        internal static int SkipWhiteSpacesAndNonLetter(String pattern, int currentIndex)
        {
            while (currentIndex < pattern.Length)
            {
                char ch = pattern[currentIndex];
                if (ch == '\\')
                {
                    // Escaped character. Look ahead one character.
                    currentIndex++;
                    if (currentIndex < pattern.Length)
                    {
                        ch = pattern[currentIndex];
                        if (ch == '\'')
                        {
                            // Skip the leading single quote.  We will
                            // stop at the first letter.
                            continue;
                        }
                        // Fall thru to check if this is a letter.
                    } else
                    {
                        // End of string
                        break;
                    }
                }
                if (Char.IsLetter(ch) || ch == '\'' || ch == '.')
                {                
                    break;
                }
                // Skip the current char since it is not a letter.
                currentIndex++;
            }
            return (currentIndex);
        }

Usage Example

        internal int AddDateWords(string pattern, int index, string formatPostfix)
        {
            int num1 = DateTimeFormatInfoScanner.SkipWhiteSpacesAndNonLetter(pattern, index);
            int num2 = index;

            if (num1 != num2 && formatPostfix != null)
            {
                formatPostfix = (string)null;
            }
            index = num1;
            StringBuilder stringBuilder = new StringBuilder();

            while (index < pattern.Length)
            {
                char c = pattern[index];
                switch (c)
                {
                case '\'':
                    this.AddDateWordOrPostfix(formatPostfix, stringBuilder.ToString());
                    ++index;
                    goto label_13;

                case '\\':
                    ++index;
                    if (index < pattern.Length)
                    {
                        stringBuilder.Append(pattern[index]);
                        ++index;
                        continue;
                    }
                    continue;

                default:
                    if (char.IsWhiteSpace(c))
                    {
                        this.AddDateWordOrPostfix(formatPostfix, stringBuilder.ToString());
                        if (formatPostfix != null)
                        {
                            formatPostfix = (string)null;
                        }
                        stringBuilder.Length = 0;
                        ++index;
                        continue;
                    }
                    stringBuilder.Append(c);
                    ++index;
                    continue;
                }
            }
label_13:
            return(index);
        }
All Usage Examples Of System.Globalization.DateTimeFormatInfoScanner::SkipWhiteSpacesAndNonLetter