LINUX.ORG.RU

Текстовые редакторы и флаг модификации

 , ,


0

2

Обычно, в текстовом редакторе заводят булеву переменную, которую при модификации устанавливают в значение «изменено». И звёздочку с именем файла показывают.

Если например открыть файл, нажать «пробел», а затем стереть пробел клавишей «backspace», то звёздочка в имени файла останется, показывая что модификации проводились.

Но! можно ведь не этот признак хранить, а хранить исходную контрольную сумму файла. После каждого изменения её пересчитывать, и если контрольная сумма совпадает с исходной, то звёздочку не показывать.

Некоторые скажут - это надо весь текст в памяти держать, а что если текст больше, чем мои 16 гигабайт памяти, а редактировать его надо?

В таком редакторе надо считать промежуточные суммы для загруженного буфера сразу после загрузки.

Да и просто большой файл можно на блоки поделить, чтобы не пересчитывать всё.

Как вам идея?


Ответ на: комментарий от anonymous

А лучше 10, для гарантии. А то вдруг, коллизии совпадут.

ТС, ерунда это всё и ненужно. Зачем тормоза в редактор добавлять?

peregrine ★★★★★
()
Ответ на: комментарий от BarCat

Ты про это:

что программа тупая. Файл я сделал такой же, какой он был до этого, а программа этого не видит.

Пользовательский интерфейс должен четко отображать что происходит.

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

Так это, пользователю надо хоть малость головой думать, иначе она откажет.

peregrine ★★★★★
()
Ответ на: комментарий от peregrine

пользователю надо хоть малость головой думать

пользователь в этот момент думает о другом. О содержании документа, который он составляет.

BarCat
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.