/
n-dimens
/
pascalabcnet
Обзор
Документация
Войти
/
n-dimens
/
pascalabcnet
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
ICSharpCode.TextEditor/Src/Document/TextBufferStrategy/StringTextBufferStrategy.cs
85 строк
2 KB
Бондарев Иван
initial commit
14 май 2015, 22:35
14 май 2015, 22:35
e6e67c1
Код
Авторство
О чём код?
// <file> // <copyright see="prj:///doc/copyright.txt"/> // <license see="prj:///doc/license.txt"/> // <owner name="Mike Krüger" email="mike@icsharpcode.net"/> // <version>$Revision: 2682 $</version> // </file> using System; using System.IO; using System.Text; namespace ICSharpCode.TextEditor.Document { /// <summary> /// Simple implementation of the ITextBuffer interface implemented using a /// string. /// Only for fall-back purposes. /// </summary> public class StringTextBufferStrategy : ITextBufferStrategy { string storedText = ""; public int Length { get { return storedText.Length; } } public void Insert(int offset, string text) { if (text != null) { storedText = storedText.Insert(offset, text); } } public void Remove(int offset, int length) { storedText = storedText.Remove(offset, length); } public void Replace(int offset, int length, string text) { Remove(offset, length); Insert(offset, text); } public string GetText(int offset, int length) { if (length == 0) { return ""; } if (offset == 0 && length >= storedText.Length) { return storedText; } return storedText.Substring(offset, Math.Min(length, storedText.Length - offset)); } public char GetCharAt(int offset) { if (offset == Length) { return '\0'; } return storedText[offset]; } public void SetContent(string text) { storedText = text; } public StringTextBufferStrategy() { } public static ITextBufferStrategy CreateTextBufferFromFile(string fileName) { if (!File.Exists(fileName)) { throw new System.IO.FileNotFoundException(fileName); } StringTextBufferStrategy s = new StringTextBufferStrategy(); s.SetContent(Util.FileReader.ReadFileContent(fileName, Encoding.Default)); return s; } } }