purebasic.info

PureBasic forum
Текущее время: Вт апр 24, 2018 12:16 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Ошибка SortStructuredArray()
СообщениеДобавлено: Вт мар 11, 2014 1:00 pm 
Не в сети
профессор

Зарегистрирован: Ср янв 14, 2009 4:12 pm
Сообщений: 2002
Благодарил (а): 12 раз.
Поблагодарили: 101 раз.
Пункты репутации: 43
Возьмем такой код
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Structure SERVICE_INFO
  DisplayName.s              
  Description.s              
  Status.s          
  StartType.s                
  ErrorControl.s          
  ServiceType.s            
  ServiceStartName.s        
  rs.s                    
  LoadOrderGroup.s          
  ServiceFile.s              
  ServiceName.s          
EndStructure
 
Dim SrvInfo.SERVICE_INFO(6)
 
SrvInfo(0)\DisplayName = "AVG Брандмауер"
SrvInfo(1)\DisplayName = "ASP.NET State service"
SrvInfo(2)\DisplayName = "DHCP-клиент"
SrvInfo(3)\DisplayName = "AVGIDSAgent"
SrvInfo(4)\DisplayName = "Adguard Service"
SrvInfo(5)\DisplayName = "AVG WatchDog"
 
SrvInfo(0)\Description = "aadgertvasdasdf"
SrvInfo(1)\Description = "ervxacvads asdfasdf asdfasdf asdfasdfxcv"
SrvInfo(2)\Description = "erye45ghdfb sgeart fgjugh yegadfadf"
SrvInfo(3)\Description = "jklfgh vbnftyfb  dfgdfgd"
SrvInfo(4)\Description = "bdretdfg drert dfgtdrt "
SrvInfo(5)\Description = "56rety dfgd df fhfh fhssfgyrhmk yghjg"
Debug "До сортировки"
Debug "-----------------------------"
For i = 0 To 5
  Debug SrvInfo(i)\DisplayName
Next i
Debug ""
Debug "После сортировки"
Debug "-----------------------------"
 
SortStructuredArray(SrvInfo(), #PB_Sort_Ascending, OffsetOf(SERVICE_INFO\DisplayName), TypeOf(SERVICE_INFO\DisplayName))
 
For i = 0 To 5
  Debug SrvInfo(i)\DisplayName
Next i  


На выходе у меня получается вот это
ИзображениеИзображение

Один элемент массива пропал, второй отсортирован неправильно

Вот так сортирует старый добрый Access
ИзображениеИзображение

Пробовал на разных версиях PureBAsic, везде так.

_________________
Всё должно быть просто, настолько просто, насколько возможно, но не проще. (c) Альберт Эйнштейн
Изображение


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Ошибка SortStructuredArray()
СообщениеДобавлено: Вт мар 11, 2014 1:16 pm 
Не в сети
профессор

Зарегистрирован: Пн янв 03, 2011 4:27 pm
Сообщений: 410
Благодарил (а): 5 раз.
Поблагодарили: 17 раз.
Пункты репутации: 0
pablov, замени Dim SrvInfo.SERVICE_INFO(6) на Dim SrvInfo.SERVICE_INFO(5)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Ошибка SortStructuredArray()
СообщениеДобавлено: Вт мар 11, 2014 1:33 pm 
Не в сети
профессор

Зарегистрирован: Вс июн 10, 2012 8:18 am
Сообщений: 1294
Благодарил (а): 60 раз.
Поблагодарили: 49 раз.
Пункты репутации: 14
Там учитывается сортировка по верхнему регистру.
Вот так нормально сортирует
Код:
1
SortStructuredArray(SrvInfo(), #PB_Sort_Ascending| #PB_Sort_NoCase, OffsetOf(SERVICE_INFO\DisplayName), TypeOf(SERVICE_INFO\DisplayName))


pablov писал(а):
Один элемент массива пропал

Просто цикл его не докручивает. Размер надо поменять.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Ошибка SortStructuredArray()
СообщениеДобавлено: Вт мар 11, 2014 1:41 pm 
Не в сети
профессор

Зарегистрирован: Ср янв 14, 2009 4:12 pm
Сообщений: 2002
Благодарил (а): 12 раз.
Поблагодарили: 101 раз.
Пункты репутации: 43
@ZOLO@, MrF
Спасибо что ткнули носом. Тему под снос
P.S. Мое ИМХО, учитывать регистр по дефолту при сортировке это не правильно, никогда с таким не сталкивался

_________________
Всё должно быть просто, настолько просто, насколько возможно, но не проще. (c) Альберт Эйнштейн
Изображение


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB