Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Индексированные таблицы! Help-Help-Help (число прочтений - 4897 )
Ward_ED
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 21
Зарегистрирован: 30. Июля 2008
Пол: Мужской
Индексированные таблицы! Help-Help-Help
30. Июля 2008 :: 11:41
Печать  
Создаю объект индексированную таблицу
Дабавляю составной индекс по трем колонкам
В цикли добаляю в талицу строки и тутже проверею уникальность по индексу, значения не должны повторяться
Метод  инд_Таб.НайтиБлижайшуюМеньше(пСписокФильтра,"УслугаДатаПрибор",1)>0
отрабатывае не корректно

Замечание! Если сначало зыгрузить данные в инд. таблицу  то все работает.
Вопрос так и должно быть?


     инд_Таб = СоздатьОбъект("ИндексированнаяТаблица");
     инд_Таб.НоваяКолонка("Услуга");
     инд_Таб.НоваяКолонка("Прибор");
     инд_Таб.НоваяКолонка("Дата");
     инд_Таб.НоваяКолонка("Статус");
     
     
     инд_Таб.ДобавитьИндекс("УслугаДатаПрибор","Услуга,Дата,Прибор",1);
     
     
     пТаблица.Сортировать("Услуга,Дата,Прибор");
     пТаблица.ВыбратьСтроки();

     пСчетчик = 0;
     пТекущаяУслуга = "";
     
     Пока пТаблица.ПолучитьСтроку()>0 Цикл
           Если пТекущаяУслуга <> пТаблица.Услуга Тогда
                 пТекущаяУслуга = пТаблица.Услуга;
                 пСчетчик = 0;
           КонецЕсли;
           
           пТекущийСтатус = ?(пТаблица.Статус>1,0,1); // 0 - отключен, 1 - действует
           
           пСписокФильтра = Создатьобъект("СписокЗначений");
           пСписокФильтра.ДобавитьЗначение(пТаблица.Услуга);
           пСписокФильтра.ДобавитьЗначение(пТаблица.Прибор);
           пСписокФильтра.ДобавитьЗначение(пТаблица.Дата);
           
           Если инд_Таб.НайтиБлижайшуюМеньше(пСписокФильтра,"УслугаДатаПрибор",1)>0 Тогда
                 Сообщить("Прибор "+пТаблица.Прибор+", нашли прибор "+инд_Таб.Прибор);
                 
                 Если пТекущийСтатус <> инд_Таб.Статус Тогда
                       инд_Таб.НоваяСтрока();
                       инд_Таб.Услуга = пТаблица.Услуга;
                       инд_Таб.Прибор = пТаблица.Прибор;
                       инд_Таб.Дата   = пТаблица.Дата;
                       инд_Таб.Статус = пТекущийСтатус;
                       пСчетчик = ?(пТекущийСтатус>1,пСчетчик-1,пСчетчик+1);
               инд_Таб.Сортировать("Услуга,Дата,Прибор");
                 КонецЕсли;
           Иначе
                 Сообщить("Прибор "+пТаблица.Прибор);
                 инд_Таб.НоваяСтрока();
                 инд_Таб.Услуга = пТаблица.Услуга;
                 инд_Таб.Прибор = пТаблица.Прибор;
                 инд_Таб.Дата   = пТаблица.Дата;
                 инд_Таб.Статус = пТекущийСтатус;

           КонецЕсли;
     КонецЦикла;


  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Индексированные таблицы! Help-Help-Help
Ответ #1 - 30. Июля 2008 :: 13:01
Печать  
версия 1cpp какая?
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Индексированные таблицы! Help-Help-Help
Ответ #2 - 30. Июля 2008 :: 13:03
Печать  
и почему проверяешь уникальность через НайтиБлижайшуюМеньше, а не через НайтиСтроку?
  
Наверх
ICQ  
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: Индексированные таблицы! Help-Help-Help
Ответ #3 - 30. Июля 2008 :: 13:12
Печать  
и зачем инд_Таб.Сортировать("Услуга,Дата,Прибор");  Улыбка
  
Наверх
 
IP записан
 
Ward_ED
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 21
Зарегистрирован: 30. Июля 2008
Пол: Мужской
Re: Индексированные таблицы! Help-Help-Help
Ответ #4 - 31. Июля 2008 :: 08:42
Печать  
версия 1cpp какая?

v 2.5.0.6
  
Наверх
 
IP записан
 
Ward_ED
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 21
Зарегистрирован: 30. Июля 2008
Пол: Мужской
Re: Индексированные таблицы! Help-Help-Help
Ответ #5 - 31. Июля 2008 :: 08:43
Печать  
и почему проверяешь уникальность через НайтиБлижайшуюМеньше, а не через НайтиСтроку?

Потому что нужно найти ближайшую по ключу  Улыбка
  
Наверх
 
IP записан
 
Ward_ED
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 21
Зарегистрирован: 30. Июля 2008
Пол: Мужской
Re: Индексированные таблицы! Help-Help-Help
Ответ #6 - 31. Июля 2008 :: 08:44
Печать  
PVR писал(а) 30. Июля 2008 :: 13:12:
и зачем инд_Таб.Сортировать("Услуга,Дата,Прибор");  Улыбка


Остался мусор, это от безусходности я расчитывал на этот метод а он... ну вообчес как у нас в России
  
Наверх
 
IP записан
 
Ward_ED
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 21
Зарегистрирован: 30. Июля 2008
Пол: Мужской
Re: Индексированные таблицы! Help-Help-Help
Ответ #7 - 31. Июля 2008 :: 08:46
Печать  
Т.е. ничего вразумительно никто ответить не может  Печаль
Придется все делать ручками  Плачущий
  
Наверх
 
IP записан
 
Ward_ED
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 21
Зарегистрирован: 30. Июля 2008
Пол: Мужской
Re: Индексированные таблицы! Help-Help-Help
Ответ #8 - 02. Августа 2008 :: 10:11
Печать  
Ward_ED писал(а) 31. Июля 2008 :: 08:46:
Т.е. ничего вразумительно никто ответить не может  Печаль
Придется все делать ручками  Плачущий



Итог, метод индексированной таблицы значений НайтиБлижайшуюМеньше() НЕ РАБОТАЕТ!
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Индексированные таблицы! Help-Help-Help
Ответ #9 - 02. Августа 2008 :: 10:58
Печать  
Итог: никто не захотел разбираться с проблемами твоего алгоритма.

По существу:
Замечу кратко, что алгоритм без данных не дает ответа на вопрос, работает что-то или нет.
Если здесь появится очень короткий и четкий тест конкретно по методу ИТ "НайтиБлижайшую***", это, возможно, даст результаты.
  

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


I Love YaBB 2!

Сообщений: 21
Зарегистрирован: 30. Июля 2008
Пол: Мужской
Re: Индексированные таблицы! Help-Help-Help
Ответ #10 - 02. Августа 2008 :: 11:26
Печать  
kms писал(а) 02. Августа 2008 :: 10:58:
Итог: никто не захотел разбираться с проблемами твоего алгоритма.

По существу:
Замечу кратко, что алгоритм без данных не дает ответа на вопрос, работает что-то или нет.
Если здесь появится очень короткий и четкий тест конкретно по методу ИТ "НайтиБлижайшую***", это, возможно, даст результаты.


По существу: он вообще не работает  Нерешительный
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Индексированные таблицы! Help-Help-Help
Ответ #11 - 02. Августа 2008 :: 15:52
Печать  
Это не тест, а утверждение.
Результатов не даст.

P.S.
А вот тесты-то как раз проходят.
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Индексированные таблицы! Help-Help-Help
Ответ #12 - 03. Августа 2008 :: 05:12
Печать  
Ward_ED писал(а) 30. Июля 2008 :: 11:41:
     инд_Таб.ДобавитьИндекс("УслугаДатаПрибор","Услуга,Дата,Прибор",1);
     
           пСписокФильтра = Создатьобъект("СписокЗначений");
           пСписокФильтра.ДобавитьЗначение(пТаблица.Услуга);
           пСписокФильтра.ДобавитьЗначение(пТаблица.Прибор);
           пСписокФильтра.ДобавитьЗначение(пТаблица.Дата);
           
           Если инд_Таб.НайтиБлижайшуюМеньше(пСписокФильтра,"УслугаДатаПрибор",1)>0 Тогда

Как обычно, проблемы в твоем алгоритме Печаль
Присмотрись к сочетанию Услуга-Дата-Прибор и сделай верную последовательность !
  

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: Индексированные таблицы! Help-Help-Help
Ответ #13 - 03. Августа 2008 :: 10:29
Печать  
artbear писал(а) 03. Августа 2008 :: 05:12:
Как обычно, проблемы в твоем алгоритме Печаль
Присмотрись к сочетанию Услуга-Дата-Прибор и сделай верную последовательность !

Просто коллега еще не познал азов TDD.

P.S.
Артур, ты сейчас применил статический анализ, это нетипично.
Ты должен был сказать что-то типа "делай тест, и да рассеяцца проблемы твои".

Очень довольный
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Индексированные таблицы! Help-Help-Help
Ответ #14 - 03. Августа 2008 :: 16:02
Печать  
kms писал(а) 03. Августа 2008 :: 10:29:
artbear писал(а) 03. Августа 2008 :: 05:12:
Как обычно, проблемы в твоем алгоритме Печаль
Присмотрись к сочетанию Услуга-Дата-Прибор и сделай верную последовательность !

Просто коллега еще не познал азов TDD.

P.S.
Артур, ты сейчас применил статический анализ, это нетипично.
Ты должен был сказать что-то типа "делай тест, и да рассеяцца проблемы твои".

Очень довольный

Да, это нетипичная моя реакция, но я все-таки на отдыхе Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать