User Tag List

Показано с 1 по 10 из 124

Тема: Как организовать память для текстового редактора?

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,089
    Спасибо Благодарностей отдано 
    281
    Спасибо Благодарностей получено 
    70
    Поблагодарили
    49 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Придумал, как редактировать большие файлы.

    Для этого требуется не один, а два своп-файла. Их совокупный размер может вырасти вплоть до размеров оригинального файла минус объем доступной в качестве буфера оперативной памяти, так что если имеется дискета на 800кБ - то на ней можно будет редактировать файлы до ~400кБ размера, если хранить своп-файл на ней же.

    Сначала в оперативку загружается часть оригинального файла - по доступному размеру буфера, но оставляя некоторое место для текущих вставок. При выходе курсора за пределы этой области отредактированный текст сохраняется на диск в первый своп-файл, а данные подгружаются в память из оригинального файла. Таким образом, при далеких перемещениях курсора только в направлении конца текста (и малых - в локальной области в любом направлении) когда курсор окажется в конце текста, в своп-файле окажется почти полная отредактированная копия исходного файла. Если теперь переместить курсор далеко назад, за пределы находящегося в памяти куска - то информация с конца текста начинает записываться во второй своп-файл, задом наперед - потому что файлы могут расти или обрезаться только с конца. В освободившуюся память подгружаются данные из первого своп-файла, и редактирование продолжается. При перемещениях курсора за пределы "окна ОЗУ" информация из начала или конца ОЗУ-буфера дописывается в один из своп-файлов, в освободившуюся память подгружаются данные из другого своп-файла, и один из своп-файлов обрезается с конца.

    По окончании редактирования в конец первого своп-файла дописываются весь текст из ОЗУ-буфера, после этого все содержимое второго своп-файла дописывается к первому своп-файлу задом наперед. После этого первый своп-файл содержит полный вариант отредактированного текста, второй своп-файл пуст. Он удаляется, удаляется также оригинальный файл, а первый своп-файл переименовывается под имя оригинального файла. Если оригинал и своп-файлы хранились на разных дисках - то процедура немного отличается, но суть, надеюсь, ясна.

    Очень эффективно. При таком подходе копирование больших кусков данных на диске сводится к минимуму.

    ---------- Post added at 20:01 ---------- Previous post was at 19:58 ----------

    Цитата Сообщение от esl Посмотреть сообщение
    не, эт неправильно, логи парсить надо не редакторм а скриптом на ruby/perl/python
    Если изменения большие - то можно скриптом, а если небольшие - то сойдет и редактор. Это быстрее, чем писать и отлаживать скрипт. Я часто этим занимался по работе (патчил логи), правда, от их размера редактор (Far) не усирался.

    А MIM - это очень мощный редактор. На нем я набирал и редактировал свой диплом, хотя на дворе был уже 2000й год, и мне тогда были доступны редакторы на PC (Far, Word и др.). Тем не менее по совокупности критериев был выбран MIM как наиболее удобный и экономящий время/усилия.
    Последний раз редактировалось Barmaley_m; 02.04.2013 в 21:05. Причина: исправил ошибки в тексте

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Алгоритм текстового Quest'a
    от ALKO в разделе Программирование
    Ответов: 11
    Последнее: 23.12.2010, 00:47
  2. Как проще код из текстового файла -> Alasm-файл?
    от TomCaT в разделе Программирование
    Ответов: 10
    Последнее: 28.05.2010, 16:53
  3. Адаптация текстового редактора
    от Raydac в разделе Софт
    Ответов: 1
    Последнее: 09.06.2008, 14:27
  4. Интересная идея текстового интерфейса в играх
    от Black_Cat в разделе Программирование
    Ответов: 3
    Последнее: 18.11.2006, 15:22
  5. Проект муз. редактора для AY
    от Bulba в разделе Музыка
    Ответов: 36
    Последнее: 09.09.2005, 20:32

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •