Штучный стол - Piece table
Эта статья предоставляет недостаточный контекст для тех, кто не знаком с предметом.Май 2012 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
А штучный стол это структура данных обычно используется для представления серии правки на Текстовый документ. Создается начальная ссылка (или "диапазон") на весь исходный файл, а последующие вставки и удаления создаются как комбинации одной, двух или трех ссылок на разделы исходного документа или диапазонов, связанных с более ранними. вставки.[1]
Обычно текст исходного документа хранится в одном неизменный block, а текст каждой последующей вставки сохраняется в новых неизменяемых блоках. Поскольку даже удаленный текст по-прежнему включается в таблицу элементов, это делает многоуровневым или неограниченным отменить проще реализовать с таблицей элементов, чем с альтернативными структурами данных, такими как буфер промежутка.
Эта структура данных была изобретена Дж. Стротер Мур.[2]
Описание
Для этого описания мы используем буфер как неизменяемый блок для хранения содержимого.
Штучная таблица состоит из трех столбцов:[1]
- Какой буфер
- Начальный индекс в буфере
- Длина в буфере
Помимо таблицы, для обработки правок используются два буфера:
- "Исходный буфер": Буфер исходного текстового документа. Этот буфер доступен только для чтения.
- "Добавить буфер": Буфер временного файла. Этот буфер предназначен только для добавления.
Операции
Индекс
Определение:
Индекс (i)
: вернуть символ в позиции я
Чтобы получить я-й символ, считывается соответствующая запись в таблице штук.
Пример
Учитывая следующие буферы и таблицу штук:
Буфер | Содержание |
---|---|
Исходный файл | ipsum sit amet |
Добавить файл | Lorem удален текст dolor |
Который | Начальный индекс | Длина |
---|---|---|
Добавлять | 0 | 6 |
Оригинал | 0 | 6 |
Добавлять | 18 | 5 |
Оригинал | 6 | 9 |
Чтобы получить доступ к я-го символа ищется соответствующая запись в таблице штук.
Например, чтобы получить значение Индекс (15)
, извлекается третья запись таблицы штук. Это связано с тем, что третья запись описывает символы от 12 до 16 (первая запись описывает символы от 0 до 5, следующая - от 6 до 11). Запись в таблице штук указывает программе искать символы в "добавить файл"буфер, начиная с индекса 18 в этом буфере. Относительный индекс в этой записи 15-12 = 3, который добавляется к начальной позиции записи в буфере, чтобы получить индекс буквы: 3 + 18 = 21. Значение Индекс (15)
это 21-й символ буфера «добавить файл», то есть символ «о».
Для приведенных выше буферов и таблицы элементов показан следующий текст:
Lorem ipsum dolor sit amet
Вставлять
Вставка символов в текст состоит из:
- Добавление символов в буфер «добавить файл» и
- Обновление записи в таблице штук (разбиение записи на две или три)
Удалить
Удаление включает только изменение соответствующей записи в таблице штук.
использование
Несколько текстовые редакторы использовать внутреннюю таблицу частей в ОЗУ, включая Браво,[1] Abiword,[3][4][5] Атом[6] и Код Visual Studio.[7]
Функция «быстрого сохранения» в некоторых версиях Microsoft Word использует таблицу элементов для формата файла на диске.[2]
Представление текстовых файлов на диске в Система Оберон использует цепочка метод, который позволяет частям одного документа указывать на текст, хранящийся в другом документе, аналогично включение.[8]
Смотрите также
- Веревка (информатика)
- Промежуточный буфер, структура данных, обычно используемая в текстовых редакторах, которая позволяет выполнять эффективные операции вставки и удаления, сгруппированные в одном месте.
Рекомендации
- ^ а б c Кроули, Чарльз (1998-06-10). «Структуры данных для текстовых последовательностей - 6.4 Метод таблицы элементов» (PDF). Архивировано из оригинал (PDF) на 2018-02-23. Цитировать журнал требует
| журнал =
(помощь) - ^ а б Дэвид Лу."Что было сделано с использованием Таблицы предметов?".(обсуждение )
- ^ «Разработка AbiWord: фон таблицы элементов».
- ^ Джеймс Браун. "Цепочки компонентов: разработка и реализация текстового редактора Win32".
- ^ Хоакин Куэнка Абела.«Улучшение таблицы пьес AbiWord».
- ^ «Новая реализация буфера Atom с поддержкой параллелизма»
- ^ "Примечания к выпуску VS Code 1.21 (исходный код )
- ^ Никлаус Вирт, Юрг Гуткнехт.«Проект Оберон: Дизайн операционной системы и компилятора» В архиве 2013-04-12 в Wayback Machine.2005.p. 90.
Этот алгоритмы или же структуры данных -связанная статья является заглушка. Вы можете помочь Википедии расширяя это. |
Этот Информатика статья - это заглушка. Вы можете помочь Википедии расширяя это. |