Форум программистов, компьютерный форум CyberForum.ru

пишу ed, отмена изменений - C++

Восстановить пароль Регистрация
 
AC-93
13 / 13 / 0
Регистрация: 27.01.2010
Сообщений: 150
16.05.2011, 20:18     пишу ed, отмена изменений #1
Черт меня дернул взять это своим проектом.
В общем пишу через глобальные переменные типа сам буфер, текущими позиции, ссылки на начала строк и тд. Написал многое, но проблема с отменой последнего изменения, пока есть идея только дублирования всех глоб. переменных куда-то и потом назад, но это будет долго и неэффективность, возможно существуют способы лучше.
Буду рад подсказкам, если интересно -выложу код.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2011, 20:18     пишу ed, отмена изменений
Посмотрите здесь:

C++ Отмена ввода по нажатию ESC
Отмена регистра C++
C++ пишу калькулятор. подскажите
C++ Отмена коммита в GitHub
C++ Отмена создания объекта при неверных аргументах
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
16.05.2011, 20:31     пишу ed, отмена изменений #2
я не совсем понял, о чем конкретно идет речь, но как насчет использования стэка?
DeadRipper
64 / 70 / 3
Регистрация: 25.06.2009
Сообщений: 244
16.05.2011, 20:34     пишу ed, отмена изменений #3
ed это текстовый редактор?
AC-93
13 / 13 / 0
Регистрация: 27.01.2010
Сообщений: 150
16.05.2011, 21:04  [ТС]     пишу ed, отмена изменений #4
Извините, http://khpi-iip.mipk.kharkiv.edu/lib...sref/gl06.html
пункт 6.9.
Да это текстовый редактор.
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
16.05.2011, 22:09     пишу ed, отмена изменений #5
Читать Паттерн Команда - Command - в книге Банды четырех (GoF).
И, естественно, использовать стек.
Без этого сложно реализовать.
И не жалуйтесь - хороший проект взяли, опыт хороший получите.


Можно другой вариант - попроще.
Сохранять предыдущую версию редактируемого файла. Если откат, то делать ее обратно рабочей.
AC-93
13 / 13 / 0
Регистрация: 27.01.2010
Сообщений: 150
18.05.2011, 05:44  [ТС]     пишу ed, отмена изменений #6
Ок, придется копированием, со стеком и очередями вроде и много работал, но не представляю как тут это сделать, т.к. изменения могут быть и в середине файла и сначала произойдет куча сдвигов по памяти.

Добавлено через 22 часа 12 минут
Еще возникла проблема с корректным и нормальным разбором выражений типа:
1) 1p
2)p
3) 1 , 2 p
1) -1, -5 p
1)1, $p
в общем вариантов много с разными буквами вместо p, думал strtok разбивать и смотреть число ли то, что в первом токене, но команда может быть написана слитно и тогда в 1 будет все, и т.д
+ что делать при окончании памяти? Вроде как просто закрыться нельзя, вдруг там 100 страниц текста было набрано...
Yandex
Объявления
18.05.2011, 05:44     пишу ed, отмена изменений
Ответ Создать тему
Опции темы

Текущее время: 14:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru