Mercurial > pub > ImplabNet
view Implab/Formats/StringScanner.cs @ 177:a0ff6a0e9c44 ref20160224
refactoring
author | cin |
---|---|
date | Wed, 23 Mar 2016 01:42:00 +0300 |
parents | 0c3c69fe225b |
children | 76e8f2ba12b8 |
line wrap: on
line source
using System; namespace Implab.Formats { public class StringScanner: TextScanner { const int CHUNK_SIZE = 1024; readonly string m_text; int m_pos; public StringScanner(string text) : base(text.Length, text.Length < CHUNK_SIZE ? text.Length : CHUNK_SIZE) { m_text = text; Feed(); } protected override int Read(char[] buffer, int offset, int size) { var actual = size + m_pos > m_text.Length ? m_text.Length - m_pos : size; m_text.CopyTo(m_pos,buffer,offset, actual); m_pos += actual; return actual; } } }