Beispiel #1
0
        public LineViewModel FilterLine(LineViewModel line)
        {
            if (line == null)
                return null;

            return _filterRegex == null || _filterRegex.IsMatch(line.Text) ? line : null;
        }
Beispiel #2
0
        private LineViewModel ReadNewLine(byte lastLineCharacter, bool isLineUnfinished)
        {
            int length = _currentReadPosition - _currentLineIndex;
            if (lastLineCharacter == '\r')
            {
                length--;
            }

            // New line reached
            LineViewModel newLine = null;
            // Check if an unfinished line was being read
            if (_currentUnfinishedLine != null)
            {
                // Just update the current line with a new length
                _currentUnfinishedLine.Length = length;
            }
            else
            {
                newLine = new LineViewModel(_currentLineNumber++, _currentLineIndex, length, _fileName, _encoding);
            }

            if (isLineUnfinished)
            {
                _currentUnfinishedLine = newLine ?? _currentUnfinishedLine;
            }
            else
            {
                _currentLineIndex = _currentReadPosition + 1;
                _currentUnfinishedLine = null;
            }

            return newLine;
        }
Beispiel #3
0
 private void InitializeReadParameters()
 {
     _currentLineNumber = 1;
     _currentLineIndex = 0;
     _currentReadPosition = 0;
     _previousReadLastByte = 0;
     _currentUnfinishedLine = null;
 }