С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

Отмена действия - C++
Доброе время суток! Сорри если не там тему создал Дело вот в чем, необходимо реализовать в программе откат действия (ctrl+z). Программа...

Отмена регистра - C++
Нужно ввести строку без учета регистра(ПрИвЕт = привет и.д.)или сравнить без регистра Помогите пожалуйста

Отмена коммита в GitHub - C++
Не нашел ветки по github, поэтому спрашиваю здесь Создал коммит и затем мне понадобилось его отменить. Для этого перешел на другую...

Отмена ввода по нажатию ESC - C++
Как отменить все введенное и выйти если пользователь нажал ESC? (желательно с использованием консольного буфера ввода) Добавлено через...

Отмена создания объекта при неверных аргументах - C++
Всем привет! Как можно проверить инициализирующие параметры на ошибочность и при ошибке отменить создание объекта? class Person ...

MS SQL Отмена последних изменений - C#
Собственно есть процедура USE DB_POST_OFFICE; GO ALTER PROCEDURE addPerson @LastName nvarchar(50), @FirstName...

5
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
16.05.2011, 20:31 #2
я не совсем понял, о чем конкретно идет речь, но как насчет использования стэка?
1
DeadRipper
64 / 70 / 3
Регистрация: 25.06.2009
Сообщений: 244
16.05.2011, 20:34 #3
ed это текстовый редактор?
0
AC-93
16 / 16 / 0
Регистрация: 27.01.2010
Сообщений: 150
16.05.2011, 21:04  [ТС] #4
Извините, http://khpi-iip.mipk.kharkiv.edu/library/extent/os/usref/gl06.html
пункт 6.9.
Да это текстовый редактор.
0
ValeryLaptev
Эксперт С++
1046 / 825 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
16.05.2011, 22:09 #5
Читать Паттерн Команда - Command - в книге Банды четырех (GoF).
И, естественно, использовать стек.
Без этого сложно реализовать.
И не жалуйтесь - хороший проект взяли, опыт хороший получите.


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

Добавлено через 22 часа 12 минут
Еще возникла проблема с корректным и нормальным разбором выражений типа:
1) 1p
2)p
3) 1 , 2 p
1) -1, -5 p
1)1, $p
в общем вариантов много с разными буквами вместо p, думал strtok разбивать и смотреть число ли то, что в первом токене, но команда может быть написана слитно и тогда в 1 будет все, и т.д
+ что делать при окончании памяти? Вроде как просто закрыться нельзя, вдруг там 100 страниц текста было набрано...
0
18.05.2011, 05:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.05.2011, 05:44
Привет! Вот еще темы с ответами:

Отмена внесеных изменений... - Delphi БД
Всем привет. Не подскажите как сделать отмену внесенных изменений в БД? , т.е. например я работал с БД, добавлял, удалял, изменял записи, и...

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

Отмена изменений в подчененной форме? - MS Access
Здравствуйте, подскажите. На форме кнопка "Отмена" (Me.Undo) не отменяет изменения в подчиненной форме. подскажите как быть...

Отмена изменений в ячейке DataGridView - C#
как всегда, не найдя информации в интренетах обращаюсь за помощью к Вам. задача, казалось бы, тривиальная: исключить при редактировании...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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