Переключение на Главную Страницу Страницы: 1 2 [3] 4 5  ОтправитьПечать
Очень популярная тема (более 25 ответов) ИТ: время жизни итератора и текущей строки (число прочтений - 21391 )
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: ИТ: время жизни итератора и текущей строки
Ответ #30 - 05. Мая 2008 :: 22:17
Печать  
kms писал(а) 05. Мая 2008 :: 18:44:
И знаешь, Леш, я сейчас понимаю, что все это можно сделать очень мягко, не нарушая уже существующего интерфейса.
Просто добавляя новые возможности.

Добавили бы мою хотелочку, её тоже можно сделать очень просто, не нарушая и не мешая некому и нечему  Подмигивание

Метод ЗаполнитьКолонку(вариант 4)
Синтаксис:
ЗаполнитьКолонку([Индекс = ''''], Колонка, ИнкрементируемоеЗначение, Инкремент)
Назначение:
заполняет колонку таблицы Инкрементируемым значением.
Параметры:
Индекс - тип: Строка, Число. Идентификатор или номер индекса, по которому упорядочиваются и фильтруются строки заполняемой таблицы. По умолчанию используется основной индекс.  
Колонка - тип: Строка, Число. Идентификатор или номер заполняемой колонки.  
ИнкрементируемоеЗначение - тип: Число. Значение, которым будет заполнена колонка с учетом инкремента.
Инкремент -  тип: Число. Значение, которым будет инкрементированно "ИнкрементируемоеЗначение".
(пример задали 1,2 получили 1,3,5 до КоличестваСтрок в индексе с учетом фильтра).

Заранее спасибо!
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИТ: время жизни итератора и текущей строки
Ответ #31 - 06. Мая 2008 :: 04:25
Печать  
PVR писал(а) 05. Мая 2008 :: 22:17:
kms писал(а) 05. Мая 2008 :: 18:44:
И знаешь, Леш, я сейчас понимаю, что все это можно сделать очень мягко, не нарушая уже существующего интерфейса.
Просто добавляя новые возможности.

Добавили бы мою хотелочку, её тоже можно сделать очень просто, не нарушая и не мешая некому и нечему  Подмигивание

Заранее спасибо!

Пиши в багзиллу, тогда не забудут Улыбка
  

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



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: ИТ: время жизни итератора и текущей строки
Ответ #32 - 06. Мая 2008 :: 05:32
Печать  
artbear писал(а) 06. Мая 2008 :: 04:25:
PVR писал(а) 05. Мая 2008 :: 22:17:
kms писал(а) 05. Мая 2008 :: 18:44:
И знаешь, Леш, я сейчас понимаю, что все это можно сделать очень мягко, не нарушая уже существующего интерфейса.
Просто добавляя новые возможности.

Добавили бы мою хотелочку, её тоже можно сделать очень просто, не нарушая и не мешая некому и нечему  Подмигивание

Заранее спасибо!

Пиши в багзиллу, тогда не забудут Улыбка


artbear
Как туда добавить хотелку и т.д., тыкни носом в HELP!  Подмигивание
навигация
    Хотелки

вроде не то...
и как узнать кого и на какие email подписать по багам?
  
Наверх
 
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: ИТ: время жизни итератора и текущей строки
Ответ #33 - 06. Мая 2008 :: 06:17
Печать  
PVR писал(а) 05. Мая 2008 :: 22:17:
kms писал(а) 05. Мая 2008 :: 18:44:
И знаешь, Леш, я сейчас понимаю, что все это можно сделать очень мягко, не нарушая уже существующего интерфейса.
Просто добавляя новые возможности.

Добавили бы мою хотелочку, её тоже можно сделать очень просто, не нарушая и не мешая некому и нечему  Подмигивание

Метод ЗаполнитьКолонку(вариант 4)


зарегил
http://www.1cpp.ru/bugs/show_bug.cgi?id=3813
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ИТ: время жизни итератора и текущей строки
Ответ #34 - 06. Мая 2008 :: 06:29
Печать  
PVR писал(а) 06. Мая 2008 :: 06:17:

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

Может назвать метод просто ЗаполнитьКолонку_Инкремент() (Леша, как ты думаешь)?
  

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


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: ИТ: время жизни итератора и текущей строки
Ответ #35 - 06. Мая 2008 :: 06:39
Печать  
kms писал(а) 05. Мая 2008 :: 21:12:
ADirks писал(а) 05. Мая 2008 :: 09:42:
Единственно, я тебе очередной прикол приготовил (спасибо PVR).
http://www.1cpp.ru/bugs/show_bug.cgi?id=3811

Исправил, но как же тяжко такие проблемы диагностировать!
Намного тяжелее, кстати, чем простое повторное освобождение памяти, например. Плачущий

Да уж...  Помнится, я жестоко тупил, когда всю эту войну за оптимизацию памяти воевал... результат налицо.
И ptr->~CValue(); - это да, та ещё жесть.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИТ: время жизни итератора и текущей строки
Ответ #36 - 06. Мая 2008 :: 06:39
Печать  
kms писал(а) 06. Мая 2008 :: 06:29:
Может назвать метод просто ЗаполнитьКолонку_Инкремент() (Леша, как ты думаешь)?

Может тогда вообще как-нить так:
ЗаполнитьКолонкуПоПравилу(стрПравило)
где стрПравило - строка, правило заполнения на языке 1С
?  Улыбка
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: ИТ: время жизни итератора и текущей строки
Ответ #37 - 06. Мая 2008 :: 06:43
Печать  
kms писал(а) 06. Мая 2008 :: 06:29:
PVR писал(а) 06. Мая 2008 :: 06:17:

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

Может назвать метод просто ЗаполнитьКолонку_Инкремент() (Леша, как ты думаешь)?

А я уже высказывался по этому поводу, что д.б. что-то типа ЗаполнитьКолонку_...(Индекс, ИмяКолонки, Алгоритм).  А то кому-нибудь захочется другого алгоритма - и чего тогда?  ЗаполнитьКолонку_ЧислаФибоначчи()?
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ИТ: время жизни итератора и текущей строки
Ответ #38 - 06. Мая 2008 :: 06:56
Печать  
ADirks писал(а) 06. Мая 2008 :: 06:43:
А я уже высказывался по этому поводу, что д.б. что-то типа ЗаполнитьКолонку_...(Индекс, ИмяКолонки, Алгоритм).  А то кому-нибудь захочется другого алгоритма - и чего тогда?  ЗаполнитьКолонку_ЧислаФибоначчи()?

Ага, я помню - я примерно так же высказывался.

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

Поэтому я, если честно, готов смягчить позицию и сделать исключение для инкремента.
В конце концов, это особый метод для обеспечения уникальности неуникального индекса.

Да, и еще, Леш, тут алгоритм с начальным состоянием (ибо нужно начальное значение и значение инкремента).
Т.е. по-хорошему, вообще надо функтор в качестве КОПа оформлять.
Жесть, на самом деле. Улыбка
  

De quelle planète es-tu?
Наверх
 
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: ИТ: время жизни итератора и текущей строки
Ответ #39 - 06. Мая 2008 :: 06:59
Печать  
JohnyDeath писал(а) 06. Мая 2008 :: 06:39:
kms писал(а) 06. Мая 2008 :: 06:29:
Может назвать метод просто ЗаполнитьКолонку_Инкремент() (Леша, как ты думаешь)?

Может тогда вообще как-нить так:
ЗаполнитьКолонкуПоПравилу(стрПравило)
где стрПравило - строка, правило заполнения на языке 1С
?  Улыбка

Мне трудно представить как это можно использовать и -скорость 1С
а инкремент хочу использовать для избавления от тяжелых индексов,
например, есть индекс из 10 полей, добавили поле "УпрощенныйИндекс",
заполнили по нему колонку "УпрощенныйИндекс" и Индекс превращается в очень простой  Подмигивание
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: ИТ: время жизни итератора и текущей строки
Ответ #40 - 06. Мая 2008 :: 06:59
Печать  
Цитата:
Да, и еще, Леш, тут алгоритм с начальным состоянием (ибо нужно начальное значение и значение инкремента).
Т.е. вообще надо по-хорошему, функтор в качестве КОПа оформлять.
Жесть, на самом деле. Улыбка
Ну не обязательно КОП.  Можно просто исполняемый модуль с.  Прям даже интересно стало попробовать  Улыбка
По скорости это будет всё-таки немножко быстрее, чем на 1С.
  
Наверх
 
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: ИТ: время жизни итератора и текущей строки
Ответ #41 - 06. Мая 2008 :: 07:22
Печать  
ADirks писал(а) 06. Мая 2008 :: 06:59:
Цитата:
Да, и еще, Леш, тут алгоритм с начальным состоянием (ибо нужно начальное значение и значение инкремента).
Т.е. вообще надо по-хорошему, функтор в качестве КОПа оформлять.
Жесть, на самом деле. Улыбка
Ну не обязательно КОП.  Можно просто исполняемый модуль с.  Прям даже интересно стало попробовать  Улыбка
По скорости это будет всё-таки немножко быстрее, чем на 1С.

Я уже предлагал 2 варианта, 1 самый быстрый, 2 самый универсальный  Улыбка
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: ИТ: время жизни итератора и текущей строки
Ответ #42 - 06. Мая 2008 :: 07:46
Печать  
Цитата:
Поэтому я, если честно, готов смягчить позицию и сделать исключение для инкремента.
В конце концов, это особый метод для обеспечения уникальности неуникального индекса.
А для этих целей можно использовать НомерСтроки. Т.е. пишем типа ит.ДобавитьИндекс("и1", "к1,к2, НомерСтроки") и гарантировано получаем уникальный индекс.  Для задачи PVR это конечно не подойдёт.
  
Наверх
 
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: ИТ: время жизни итератора и текущей строки
Ответ #43 - 06. Мая 2008 :: 07:56
Печать  
ADirks писал(а) 06. Мая 2008 :: 07:46:
Цитата:
Поэтому я, если честно, готов смягчить позицию и сделать исключение для инкремента.
В конце концов, это особый метод для обеспечения уникальности неуникального индекса.
А для этих целей можно использовать НомерСтроки. Т.е. пишем типа ит.ДобавитьИндекс("и1", "к1,к2, НомерСтроки") и гарантировано получаем уникальный индекс.  Для задачи PVR это конечно не подойдёт.

Да не подойдет, фильтрацию на такие тяжелые индексы замаешься делать  Печаль
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
На связи



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: ИТ: время жизни итератора и текущей строки
Ответ #44 - 06. Мая 2008 :: 09:16
Печать  
так можно еще и до вычисляемых колонок додуматься  Подмигивание
  

1&&2&&3
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 [3] 4 5 
ОтправитьПечать