public virtual int ReadBlock(char[] buffer, int index, int count) { int i, n = 0; do { n += (i = Read(buffer, index + n, count - n)); } while (i > 0 && n < count); return n; }
public List<string> ParseText(TextReader pReader) { result.Clear(); int count = 0; do { count = pReader.ReadBlock(buffer, 0, BUFFER_SIZE); for (int i = 0; i < count; ++i) { char c = buffer[i]; if (char.IsWhiteSpace(c)) { ParseWhitespace(); } else if (Contains(punctuation, c)) { ParsePunctuation(c); } else if (char.IsLetterOrDigit(c)) { ParseLetter(c); }else{ ParseLetter(c); } } } while(count == BUFFER_SIZE); return result; }