SASGIS - SAS.Планета
View Issue Details
0002890SAS.Планета[All Projects] Багpublic04-11-2015 11:1804-11-2015 19:03
zed 
vdemidov 
normalcrashalways
resolvedfixed 
.Nightly 
151111151111 
0002890: Ошибка чтения GUID провайдеров высот (рельефа) из ini файла
Выдаётся 2 сообщения:

EConvertError with message '''{AC5B2CBA-4A00-410F-98F9-26AE0CEB5456}'' is not a valid GUID value'
EConvertError with message '''{A58A67BA-3F2D-4B09-80F6-F6E2C9EE6887}'' is not a valid GUID value'

при вызовах VGuid := ReadGUID(VSectionData, 'GUID', CGUID_Zero) в TTerrainProviderListSimple.LoadFromIni.
Появилось после недавнего рефакторинга загрузки гуидов.
No tags attached.
txt SASTerrain.txt (472) 04-11-2015 11:28
https://bugtracker.sasgis.org/file_download.php?file_id=1965&type=bug
Issue History
04-11-2015 11:18zedNew Issue
04-11-2015 11:26vdemidovNote Added: 0016722
04-11-2015 11:28vdemidovNote Added: 0016723
04-11-2015 11:28zedFile Added: SASTerrain.txt
04-11-2015 11:29zedNote Added: 0016724
04-11-2015 11:36vdemidovNote Added: 0016725
04-11-2015 11:40zedNote Added: 0016726
04-11-2015 11:51vdemidovNote Added: 0016727
04-11-2015 11:58zedNote Added: 0016728
04-11-2015 12:28vdemidovNote Added: 0016729
04-11-2015 14:23vdemidovStatusnew => confirmed
04-11-2015 14:23vdemidovTarget Version => 151111
04-11-2015 18:59vdemidovNote Added: 0016730
04-11-2015 19:03vdemidovStatusconfirmed => resolved
04-11-2015 19:03vdemidovFixed in Version => 151111
04-11-2015 19:03vdemidovResolutionopen => fixed
04-11-2015 19:03vdemidovAssigned To => vdemidov

Notes
(0016722)
vdemidov   
04-11-2015 11:26   
Но в других же местах оно гуиды нормально читает? А покажи как сам ini файл
(0016723)
vdemidov   
04-11-2015 11:28   
А все я понял. Там он у тебя еще и в кавычках.
(0016724)
zed   
04-11-2015 11:29   
Приложил.

Да, там все текстовые параметры зачем-то ещё и в кавычках идут.
(0016725)
vdemidov   
04-11-2015 11:36   
Интересно, а почему оно раньше работало?
А, все понял. Ты пользовался TIniFile, вместо TMemIniFile. А он просто обертка для виндовых функций. И поведение у него другое.
(0016726)
zed   
04-11-2015 11:40   
Этот код vasketsov писал, а не я.
(0016727)
vdemidov   
04-11-2015 11:51   
Ну, не суть важно. Вопрос что делать и где исправлять. Можно конкретно этот ini файл поправить, и забыть про него. Можно добавить проверку в TConfigDataProviderByIniFileSection, которая при чтении строк будет проверять равны ли первый и последний символ кавычкке и если да, то вызывать GetUnquotedStr для возвращаемого значения.
(0016728)
zed   
04-11-2015 11:58   
>Можно конкретно этот ini файл поправить
Не, ini лучше не трогать. Пускай будет совместимость.
(0016729)
vdemidov   
04-11-2015 12:28   
Ну, значит нужно править TConfigDataProviderByIniFileSection.
(0016730)
vdemidov   
04-11-2015 18:59   
Лень было переделывать, просто вернул использование TIniFile