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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
AC-93
16 / 16 / 0
Регистрация: 27.01.2010
Сообщений: 150
#1

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

16.05.2011, 20:18. Просмотров 411. Ответов 5
Метки нет (Все метки)

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

C++ Отмена ввода по нажатию ESC
Пишу конвертер: число в строку C++
Отмена регистра C++
C++ Вопрос новичка - пишу калькулятор
Пишу консольное приложение C++
C++ Пишу транслятор и интерпритатор
C++ Отмена коммита в GitHub
C++ Отмена создания объекта при неверных аргументах
Сказали некрасиво пишу C++
Отмена действия C++
Ядрышко ОСи пишу C++
C++ Пишу велосипед (shared_ptr)

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mиxaил
531 / 436 / 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
16 / 16 / 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
Эксперт С++
1035 / 814 / 48
Регистрация: 30.04.2011
Сообщений: 1,658
16.05.2011, 22:09     пишу ed, отмена изменений #5
Читать Паттерн Команда - Command - в книге Банды четырех (GoF).
И, естественно, использовать стек.
Без этого сложно реализовать.
И не жалуйтесь - хороший проект взяли, опыт хороший получите.


Можно другой вариант - попроще.
Сохранять предыдущую версию редактируемого файла. Если откат, то делать ее обратно рабочей.
AC-93
16 / 16 / 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, отмена изменений
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru