Пример #1
0
        void DoTest(TrieNode n, string streamStr, long initialPos, long?expected, long limit = long.MaxValue)
        {
            Stream s = new MemoryStream(Encoding.UTF8.GetBytes(streamStr));

            s.Position = initialPos;
            Assert.AreEqual(expected, n.Find(s, limit));
        }
Пример #2
0
        public override TextStreamPosition?Find(Stream stream, Encoding encoding, TextStreamPositioningParams positioningParams)
        {
            EnsureInitialized(encoding);
            stream.Position = 0;
            var tmp = trieNode.Find(stream, 1024 * 1024 * 1);

            if (tmp == null)
            {
                return(null);
            }
            return(new TextStreamPosition(tmp.Value, positioningParams));
        }
Пример #3
0
        public override TextStreamPosition?Find(Stream stream, Encoding encoding, bool findEnd, TextStreamPositioningParams positioningParams)
        {
            EnsureInitialized(encoding);
            var bufSize = 1 * 1024 * 1024;

            if (findEnd)
            {
                stream.Position = Math.Max(0, stream.Length - bufSize);
            }
            else
            {
                stream.Position = 0;
            }
            var tmp = trieNode.Find(stream, bufSize);

            if (tmp == null)
            {
                return(null);
            }
            return(new TextStreamPosition(tmp.Value, positioningParams));
        }