Я хочу изменить способ представления текста внутри любого текстового редактора - PullRequest
3 голосов
/ 31 января 2010

Я хочу использовать алгоритм для уменьшения памяти, используемой для сохранения конкретного текстового файла. Я действительно не знаю, как хранится текст, но у меня есть идея.

Было бы лучше расширить текстовый редактор с открытым исходным кодом (если да, чем какой) или написать текстовый редактор самостоятельно.

Было бы неплохо, если бы кто-то мог также дать мне ссылку или учебное пособие на некоторые основы о том, как работают текстовые редакторы и как хранятся данные.

Отредактировано для добавления

Чтобы уточнить, что я хотел сделать, это вместо того, чтобы сохранять дубликаты слова, создать хеш-таблицу и сохранить адрес, куда его нужно поместить.

Таким образом, я бы не стал хранить дубликаты.

Это стало бы специфичным для конкретного текстового редактора.

Обновление

спасибо всем, что я получил то, что вы все пытаетесь сказать. В любом случае, все, что я хотел сделать, это вместо того, чтобы сохранять дубликаты слова, создать хеш-таблицу и сохранить адрес, по которому его нужно разместить.

Я бы не стал хранить дубликаты.

Да, и это стало бы специфичным для конкретного текстового редактора. никогда не осознавал этого.

Ответы [ 3 ]

11 голосов
/ 31 января 2010

Я хочу использовать алгоритм для уменьшения памяти, используемой для сохранения конкретного текстового файла

Если бы вы сделали это, у вас больше не было бы текстового редактора, но вместо этого вы бы создали какой-то редактор двоичных файлов.

Смысл формата текстового файла в том, что он универсален, то есть любой текстовый файл можно открыть в любом другом текстовом редакторе.

7 голосов
/ 31 января 2010

Emacs прозрачно обрабатывает сжатие. Просто создайте текстовый файл с расширением .gz. Emacs автоматически сжимает содержимое файла во время операции сохранения и распаковывает при следующем открытии файла.

3 голосов
/ 31 января 2010

Текст в основном хранится как есть. т. е. каждый символ занимает один или два байта (широкие символы), и при сохранении он не конвертируется. Это может добавить символ конца файла или что-то еще. Не пытайтесь придумать свой собственный алгоритм для сжатия этих файлов. Вот почему были созданы zip-файлы и другие архивы. Они действительно хорошо сжимают текст. Если вы хотите добавить эту функцию в ваш текстовый редактор, вам нужно будет добавить какой-нибудь хук после сохранения, чтобы сжать его, а затем поставить хук на команду open, чтобы разархивировать его. Если вы не хотели делать это каждый раз вручную. Не пытайтесь писать текстовый редактор самостоятельно, если (возможно) вы не пишете блокнот. Текстовые редакторы с подсветкой синтаксиса сделать не очень легко, даже с соответствующими библиотеками. Я бы сказал, написать плагин для чего-то вроде Visual Studio или что у вас есть. Или найдите текстовый редактор с открытым исходным кодом.

...