Опрос
Опрос закрыт Тема Опроса: Используете ли вы эффект смещения строк при вставке
bars   pie
*** Этот Опрос был завершен ***


Да, изменять нельзя (прокомментируйте)    
  1 (16.7%)
Нет    
  2 (33.3%)
О чем речь?    
  0 (0.0%)
Мне все равно    
  3 (50.0%)
Нет, но изменять нельзя (прокомментируйте)    
  0 (0.0%)




Всего голосов: 6
« Последняя модификация: kms : 04. Июля 2006 :: 08:33 »
Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Обход Структуры (число прочтений - 21601 )
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Обход Структуры
04. Июля 2006 :: 05:00
Печать  
В хранилище добавил падающий тест структуры. Он проверяет работу приведенного ниже кода.
Код
Выбрать все
Процедура ОчиститьСтруктуру(Структура)
Перем ИмяСвойства;
	Для ъ=1 По Структура.Количество() Цикл
		Структура.Получить(ъ, ИмяСвойства);
		//Сообщить(ИмяСвойства);
		Структура.Вставить(ИмяСвойства, 0);
	КонецЦикла;
КонецПроцедуры 



Как вы считаете, этот код корректный?
Или я совсем разучился писать правильный код для 1С++? Печаль
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Обход Структуры
Ответ #1 - 04. Июля 2006 :: 07:13
Печать  
Структура.Получить() работает некорректно.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Обход Структуры
Ответ #2 - 04. Июля 2006 :: 07:16
Печать  
А по-моему, Структура.Вставить() работает некорректно - меняет порядок свойств.
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Обход Структуры
Ответ #3 - 04. Июля 2006 :: 07:25
Печать  
Согласен.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Обход Структуры
Ответ #4 - 04. Июля 2006 :: 07:48
Печать  
sedmin писал(а) 04. Июля 2006 :: 07:16:
меняет порядок свойств.
а разве структура, как таковая, обязана гарантировать какой-то порядок следования свойств?
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Обход Структуры
Ответ #5 - 04. Июля 2006 :: 07:51
Печать  
а точнее, если бы порядок гарантировался, то об этом былобы сказано в документции.
а раз в доке этого нет, тогда...
  

1&&2&&3
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Обход Структуры
Ответ #6 - 04. Июля 2006 :: 07:56
Печать  
ИМХО код некорректный.
Здесь та же аналогия, что при удалении из таблицы значений в цикле от начала к концу таблицу номера строк становятся неверными.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Обход Структуры
Ответ #7 - 04. Июля 2006 :: 07:59
Печать  
trad
Я бы все же не допускал таких неявных подводных камней.
А то мы скоро будем сами писать книжку "1С++ Gotchas".

Цитата:
       if (m_mapProperty.Lookup(strKey, (void*&)pInNode))
       {
         int nUpperBound = m_Array.GetSize();
         --m_nCurIndex;
         int nIndex = pInNode->nIndex;
         for (int ind = pInNode->nIndex; ind < nUpperBound; ++ind)         
           --m_Array[ind]->nIndex;            
           
         m_Array.RemoveAt(nIndex);                   
         delete pInNode;
         m_mapProperty.RemoveKey(strKey);
       }
       pInnerNode->nIndex = m_nCurIndex;
       ++m_nCurIndex;
       pInnerNode->strName = strKey;
       m_mapProperty[strKey] = pInnerNode;
       m_Array.Add(pInnerNode);
     }

Просто Deb'у было проще сначала удалить соответствие, а потом добавить.
Или я смысл не полностью осознал?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Обход Структуры
Ответ #8 - 04. Июля 2006 :: 08:01
Печать  
artbear писал(а) 04. Июля 2006 :: 07:56:
ИМХО код некорректный.
Здесь та же аналогия, что при удалении из таблицы значений в цикле от начала к концу таблицу номера строк становятся неверными.

Не согласен, код корректный.
Здесь нет удаления, здесь есть (дока):
Цитата:
<стрКлюч> - (Строка)  Строка название свойства структуры, если такое свойство уже существует, то его значение изменяется, если не существует создается новое

"значение изменяется" - и никаких side - эффектов не предусмотрено.

В данном контексте - это использование равносильно методу "УстановитьЗначение" списка.
Там ведь строчки не скачут?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Обход Структуры
Ответ #9 - 04. Июля 2006 :: 08:10
Печать  
т.е. вы предлагаете одно недокументированное поведение заменить на другое недокументированное поведение в угоду пользователя "А", а как же быть с пользователем "Б" который расчитывал раньше на первое поведение.
  

1&&2&&3
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Обход Структуры
Ответ #10 - 04. Июля 2006 :: 08:16
Печать  
trad писал(а) 04. Июля 2006 :: 08:10:
т.е. вы предлагаете одно недокументированное поведение заменить на другое недокументированное поведение в угоду пользователя "А", а как же быть с пользователем "Б" который расчитывал раньше на первое поведение.


Давай исправим и документируем.

Мне, если честно, это все не важно, но не люблю таких неявных подколов.
Кроме того, давно собираюсь сделать рефакторинг структуры, как это сделано было с делегатом.

1. Нужно избавиться от CString
2. Нужно избавиться от двойного хранения строк в InnerNode /CIStringMap
3. Еще раз посмотреть на все остальное.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Обход Структуры
Ответ #11 - 04. Июля 2006 :: 08:21
Печать  
trad писал(а) 04. Июля 2006 :: 08:10:
т.е. вы предлагаете одно недокументированное поведение заменить на другое недокументированное поведение в угоду пользователя "А", а как же быть с пользователем "Б" который расчитывал раньше на первое поведение.

Добавил опрос, это для соблюдения протокола.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Обход Структуры
Ответ #12 - 04. Июля 2006 :: 08:23
Печать  
Класс назван Структура, а не Массив/Список или еще как, именно потому, что порядок свойств не определен !
ИМХО еще можно называть Множество.
Я считаю, что это поведение нужно оставить и ничего не менять.
ЗЫ зачем нам еще один список значений.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Обход Структуры
Ответ #13 - 04. Июля 2006 :: 08:27
Печать  
голосующим "да"

Прошу, заметить, вопрос поставлен не "изменять нельзя?", а "используете ли вы?".
Кто ответил "да"? - ты где конкретно используешь?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Обход Структуры
Ответ #14 - 04. Июля 2006 :: 08:28
Печать  
artbear писал(а) 04. Июля 2006 :: 08:23:
Класс назван Структура, а не Массив/Список или еще как, именно потому, что порядок свойств не определен !
ИМХО еще можно называть Множество.
Я считаю, что это поведение нужно оставить и ничего не менять.
ЗЫ зачем нам еще один список значений.


документация
Цитата:
Данный класс предназначен, для имитирования структуры данных других языков. Структура является динамическим объектом, что означает возможность программного управления количеством и названиями свойств структуры.

В c++ порядок свойств не определен?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Обход Структуры
Ответ #15 - 04. Июля 2006 :: 08:30
Печать  
И давайте не будем тратить время на абстрактные споры.

Вопрос только один: обратная совместимость.
Ждем результатов голосования и принимаем решение.

По поводу ответов "да, использую".
Прошу авторов комментировать каждый голос.
Голоса "да" буду считать по реальным комментариям.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Обход Структуры
Ответ #16 - 04. Июля 2006 :: 08:31
Печать  
kms писал(а) 04. Июля 2006 :: 08:21:
Добавил опрос, это для соблюдения протокола.

опять начинаются игры в демократию Смех
в программировании не может быть демократии. разработчик (группа разработчиков) должен сам принимать решение и отвечать за него.
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Обход Структуры
Ответ #17 - 04. Июля 2006 :: 08:32
Печать  
нет пункта:
нет, изменять нельзя
  

1&&2&&3
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Обход Структуры
Ответ #18 - 04. Июля 2006 :: 08:32
Печать  
trad писал(а) 04. Июля 2006 :: 08:31:
kms писал(а) 04. Июля 2006 :: 08:21:
Добавил опрос, это для соблюдения протокола.

опять начинаются игры в демократию Смех
в программировании не может быть демократии. разработчик (группа разработчиков) должен сам принимать решение и отвечать за него.

Дим, ну пойми, это просто у меня юмор такой Улыбка
А вообще, это именно для определения актуальности проблемы обратной совместимости.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Обход Структуры
Ответ #19 - 04. Июля 2006 :: 08:35
Печать  
trad писал(а) 04. Июля 2006 :: 08:31:
kms писал(а) 04. Июля 2006 :: 08:21:
Добавил опрос, это для соблюдения протокола.

опять начинаются игры в демократию Смех
в программировании не может быть демократии. разработчик (группа разработчиков) должен сам принимать решение и отвечать за него.

Давайте так: поскольку у меня есть пара мыслей, может я все же не буду биться за абстракцию, а просто возьму структуру на себя?
Оптимизацию скорости и распределения памяти обещаю.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Обход Структуры
Ответ #20 - 04. Июля 2006 :: 08:40
Печать  
OFF: никто компиляторы не писал?

Мне надо разобрать строчку типа "(((а || b) && !(c && d)) && e)".
Второй день репу чешу, как это эффективнее сделать...
  

De quelle planète es-tu?
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Обход Структуры
Ответ #21 - 04. Июля 2006 :: 08:51
Печать  
"Да" ответил я.
ИМХО для меня Структура = Множество, т.е. порядок следования свойств именно не определен, именно поэтому метод для добавления/изменения значение называется "Вставить".
Но в принципе, если я останусь в одиночестве, можешь изменять код, как предлагаете вы с sedmin-ом.
В таком случае я не против.

PS Чувствуете, сколько много народу пользуется Структурой? Печаль
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Обход Структуры
Ответ #22 - 04. Июля 2006 :: 09:01
Печать  
Цитата:
PS Чувствуете, сколько много народу пользуется Структурой?

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

Цитата:
"Да" ответил я.

вредный Улыбка

Самый прикол в том, что после исправления вставка будет работать быстрее.
А ты, если хочешь, можешь продолжать считать структуру неупорядоченной Подмигивание
  

De quelle planète es-tu?
Наверх
 
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Обход Структуры
Ответ #23 - 04. Июля 2006 :: 09:08
Печать  
Мне не интересен порядок хранения свойств структуры, по большому счету, он мне вообще до фени.

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

На самом деле, если не предлагается другого решения, мне требуется итератор для структуры, в котором не будет приведенной проблемы. Также, хотелось бы, чтобы этой проблемы не было и при удалении свойств из структуры (списка, таблицы и т.д.).

И не надо мне в пример приводить 1С. Есть куча языков, в которых эти проблемы решены.

В первом сообщении я намеренно не предлагал каких-либо решений для приведенной ситуации, чтобы было видно, что это не просто баг, а непродуманный момент в системе (каких не мало).
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Обход Структуры
Ответ #24 - 04. Июля 2006 :: 09:13
Печать  
sedmin писал(а) 04. Июля 2006 :: 09:08:
Из моего кода ясно видно, что мне нужно реализовать очистку свойств структуры.

"очистка свойств" ИМХО неоднозначное понятие.

Цитата:
И не надо мне в пример приводить 1С. Есть куча языков, в которых эти проблемы решены.

папа, ты сейчас с кем разговаривал? Ужас

Цитата:
В первом сообщении я намеренно не предлагал каких-либо решений для приведенной ситуации, чтобы было видно, что это не просто баг, а непродуманный момент в системе (каких не мало).

на тебя вся надежда, sedmin. я серьезно.

P.S.
думаю, нормального итератора вполне достаточно.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Обход Структуры
Ответ #25 - 04. Июля 2006 :: 09:16
Печать  
sedmin

ОК, если нужен итератор - будет итератор, только в багзиллу напиши.
К моменту реализации буду смотреть на результаты голосования.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Обход Структуры
Ответ #26 - 04. Июля 2006 :: 09:24
Печать  
kms писал(а) 04. Июля 2006 :: 08:32:
Дим, ну пойми, это просто у меня юмор такой Улыбка
я всего-лишь радею за то чтоб не принимались поспешные решения, но взвешенные.
  

1&&2&&3
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Обход Структуры
Ответ #27 - 04. Июля 2006 :: 09:33
Печать  
trad писал(а) 04. Июля 2006 :: 09:24:
kms писал(а) 04. Июля 2006 :: 08:32:
Дим, ну пойми, это просто у меня юмор такой Улыбка
я всего-лишь радею за то чтоб не принимались поспешные решения, но взвешенные.


Старый анекдот:
Едет новый русский на шестисотом. Вдруг его подрезает и бьет камаз.
НР обгоняет и прижимает камаза, останавливает, достает из кабины.
- НР: Ну все, мужик, ты конкретно попал!
- Да нет проблем
- НР: Да ты не понял, ты в натуре на немеряные бабки попал
- Да сколько надо-то?
- 100 тыщ!
водила открывает фургон, до верху набитый пачками баксов, отсчитывает 10 пачек и отдает НР

....
- НР: Слышь, мужик, а ты кто, а?
- Я? Я - новый русский. А ты?
- А я... А я кто тогда???

trad писал(а) 04. Июля 2006 :: 09:24:
kms писал(а) 04. Июля 2006 :: 08:32:
Дим, ну пойми, это просто у меня юмор такой Улыбка
я всего-лишь радею за то чтоб не принимались поспешные решения, но взвешенные.

Нам по-пути.

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

Но, конечно, смотрю на голосование и учитываю твое с Артуром мнение.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Обход Структуры
Ответ #28 - 04. Июля 2006 :: 09:43
Печать  
kms писал(а) 04. Июля 2006 :: 09:33:
По моим подсчетам 50:1
ну что тут скажешь...  Улыбка
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Обход Структуры
Ответ #29 - 04. Июля 2006 :: 09:47
Печать  
всеже, имхо, для решения проблемы в 0 правильнее завести метод
  

1&&2&&3
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Обход Структуры
Ответ #30 - 04. Июля 2006 :: 11:12
Печать  
Кстати, да, а неужели нет такого метода? Улыбка
ЗЫ или нужен метод для очистки структуры, но свойства остаются?
Какая-то несуразица вроде?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Палыч
1c++ power user
Отсутствует


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Обход Структуры
Ответ #31 - 04. Июля 2006 :: 12:37
Печать  
На мой взгляд, Структура - это класс, меньше всех нуждающийся в рефлексии.
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Обход Структуры
Ответ #32 - 04. Июля 2006 :: 12:39
Печать  
Что такое "рефлексия" ?
ЗЫ думал-думал, так и не понял  Плачущий
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Палыч
1c++ power user
Отсутствует


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Обход Структуры
Ответ #33 - 04. Июля 2006 :: 12:42
Печать  
Грубо говоря, доступ к внутренностям класса. В данном случае - получение количества полей, их наименований и т.п.
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Обход Структуры
Ответ #34 - 04. Июля 2006 :: 13:32
Печать  
Возможно. но если выкинуть доступ к имени по номеру, тут как раз, думаю, обратная совместимость реально пострадает.

Спортпрогноз, ничего более Улыбка
Кто, кстати, будет чемпионом, французы?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Обход Структуры
Ответ #35 - 04. Июля 2006 :: 13:33
Печать  
В данном случае, мне без разницы, будет доступ к внутренностям класса/не будет его. Будет итератор/не будет его. В каком виде надо реализовать итератор? Нужен ли итератор только для Структуры, или еще для Списка и Таблицы? Я не знаю.

В моем случае, структура очень хорошо подходит для накопления итогов (а еще лучше агрегатных функций) для отчетов. И в отчет ее выводить очень удобно: ИтогиУровня3.Свойство.

Вот только для накопления/обнуления сложно код написать в связи с приведенной выше заморочкой.
  
Наверх
 
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Обход Структуры
Ответ #36 - 04. Июля 2006 :: 13:48
Печать  
Да что вы так с этой обратной совместимостью маетесь? Ну купил один раз плохой арбуз, что теперь, его до конца жизни есть?

Не вы первые с этой проблемой сталкиваетесь. Обязательно надо читать "Мартин Фаулер. Рефакторинг. Улучшение существующего кода." Почитайте главу 2, параграф "Изменение интерфейсов".

В Яве, например, проблема совместимости решается с помощью объявления методов как deprecated. При их использовании возникает сообщение о том, что этот метод устарел. Может быть сделать что-то подобное?
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Обход Структуры
Ответ #37 - 04. Июля 2006 :: 13:53
Печать  
sedmin писал(а) 04. Июля 2006 :: 13:48:
Да что вы так с этой обратной совместимостью маетесь? Ну купил один раз плохой арбуз, что теперь, его до конца жизни есть?

я тебя понимаю.
но ты первый не застрелишься, если всем на совместимость положить будет?

Цитата:
В Яве, например, проблема совместимости решается с помощью объявления методов как deprecated. При их использовании возникает сообщение о том, что этот метод устарел. Может быть сделать что-то подобное?

О! я как раз хотел узнать, как же эта проблема решается в яве Смех
  

De quelle planète es-tu?
Наверх
 
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Обход Структуры
Ответ #38 - 04. Июля 2006 :: 14:04
Печать  
kms писал(а) 04. Июля 2006 :: 13:53:
но ты первый не застрелишься, если всем на совместимость положить будет?


Если тесты будут проходить - не застрелюсь.

Я все больше убеждаюсь в том, что экстремальное программирование рулит.

Вместо того, чтобы гадать, что может когда-нибудь отвалиться, напиши лучше тесты. Когда что-то изменится, ты сразу узнаешь об этом. И решишь, надо отменить новое решение, или лучше переделать старый код.
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Обход Структуры
Ответ #39 - 06. Июля 2006 :: 20:14
Печать  
sedmin
Цитата:
Не вы первые с этой проблемой сталкиваетесь. Обязательно надо читать "Мартин Фаулер. Рефакторинг. Улучшение существующего кода." Почитайте главу 2, параграф "Изменение интерфейсов".

Как раз в конце июня прикупил книгу. Но она как раз для тебя - там все про яву.
Начать что ли яву изучать?

По структуре: можно обочищатсо, все работает.
Кроме того, повышена общая эффективность класса; заметно, правда, только на серьезных данных.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Обход Структуры
Ответ #40 - 07. Июля 2006 :: 04:09
Печать  
А можно там еще ужасТное сообщение поправить?
Цитата:
Необходимо в методе Вставить() третий параметр может принимать только 1 или 0!
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Обход Структуры
Ответ #41 - 07. Июля 2006 :: 08:15
Печать  
русефекация, блин. Подмигивание

P.S.
мог бы и сам исправить...
  

De quelle planète es-tu?
Наверх
 
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Обход Структуры
Ответ #42 - 07. Июля 2006 :: 11:28
Печать  
Не могу - права только на тесты.
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Обход Структуры
Ответ #43 - 08. Июля 2006 :: 03:28
Печать  
Пользуюсь структурой, но для меня важна регистронезависимость доступа к элементам и естественный порядок следования (как добавил, так и получил).
Цитата:
OFF: никто компиляторы не писал?

Мне надо разобрать строчку типа "(((а || b) && !(c && d)) && e)".
Второй день репу чешу, как это эффективнее сделать...

Вам к бизону: http://www.linux.org.ru/books/GNU/bison/bison_5.html#SEC16
main:
http://www.linux.org.ru/books/GNU/bison/bison_toc.html
Тебе только такие строки разбирать нужно? Если что стучись в аську.
  
Наверх
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Обход Структуры
Ответ #44 - 10. Июля 2006 :: 16:46
Печать  
trdm

Спасибо.
Это почти то, что нужно.
Правда, мне это нужно применить для множеств (ну, т.е. a,b,c - это у меня множества).
  

De quelle planète es-tu?
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Обход Структуры
Ответ #45 - 11. Июля 2006 :: 15:11
Печать  
Думаю справишся.
Смножествами не работал но, если правильно описать граматику то все операции у тебя распадутся на элементарные типа $$ = а||b, а результат $$ будет использоваться в др. элем-ой операции
а с элементарными  справляться легче.
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать