SASGIS - SACS.Планета
View Issue Details
0002053SACS.ПланетаРефакторингpublic30-07-2013 08:0028-02-2014 10:52
vasketsov 
vasketsov 
highmajorN/A
resolvedfixed 
WindowsVistaUltimate
 
 
0002053: Поддержка XE2 внутри VSAGPS
Необходимо обеспечить поддержку XE2 внутри VSAGPS
No tags attached.
related to 0001498closed vasketsov SAS.Планета Подготовить vsagps для юникодных версий Delphi 
Issue History
30-07-2013 08:00vasketsovNew Issue
30-07-2013 08:00vasketsovAssigned To => vasketsov
30-07-2013 08:00vasketsovStatusnew => assigned
30-07-2013 08:10vdemidovRelationship addedrelated to 0001498
30-07-2013 08:18vdemidovNote Added: 0012240
30-07-2013 09:00vasketsovNote Added: 0012241
30-07-2013 09:39vdemidovNote Added: 0012242
30-07-2013 16:40vasketsovNote Added: 0012243
14-08-2013 20:39vasketsovNote Added: 0012420
15-08-2013 05:23vdemidovNote Added: 0012421
15-08-2013 07:55vasketsovNote Added: 0012422
15-08-2013 08:26vdemidovNote Added: 0012423
15-08-2013 12:33vasketsovNote Added: 0012440
15-08-2013 12:33vasketsovStatusassigned => resolved
15-08-2013 12:33vasketsovResolutionopen => fixed

Notes
(0012240)
vdemidov   
30-07-2013 08:18   
Это мысль хорошая, а то там из 600 варнингов SAS на VSAGPS приходится добрых пару сотен :)
(0012241)
vasketsov   
30-07-2013 09:00   
Там всё просто на Ansi, исключая TStringList, вот и ругань.
Ну плюс deprecated Resume плюс deprecated GetLocaleFormatSettings плюс ещё по мелочи.

Отдельно надо будет думать, что делать с файловым экспортом и импортом, потому что в реальности в любой версии можно прочитать как обычный так и юникодный файл, и сохранять надо хз в каком виде (если для xml ещё заголовок есть, то как PLT и прочие в unicode будут себя вести и дальше жить, в том числе в другом софте - большой вопрос).
(0012242)
vdemidov   
30-07-2013 09:39   
>Там всё просто на Ansi, исключая TStringList, вот и ругань.
Ага, все в анси, а для работы со строками используются IntToStr и тд. котрые расчитаны на обычные строки по крайней мере в XE2

plt без вариантов ansi, scv нужно детектить при чтении, а сохранять лучше в Ansi сохраняя старое поведение
(0012243)
vasketsov   
30-07-2013 16:40   
Итак, первая и бОльшая часть сделана. Осталась вторая - сохранялка треков в файл (она в сас отсвечивает несильно, и изменений там много не вылезет).

По поводу импорта файлов (в т.ч. для режима полёта по треку):
а) файлы plt, nmea и garmin импортируются ТОЛЬКО как ANSI и никак иначе (если внезапно появится лог nmea или plt в UNICODE - будем решать проблемы по факту их возникновения);
б) kml и gpx импортируются парсером xml - а он всегда UNICODE (так что изменений в нём нет);
в) csv в vsagps мы не юзаем, так что IsTextUnicode путь юзают те, кто будет его править в сасе.
(0012420)
vasketsov   
14-08-2013 20:39   
>сохранялка треков в файл
Возникла мысль. Может сделать просто настройку в сасе, в каком виде (Ansi или Wide) сохранять треки, если формат может быть разным (например, gpx может быть как UTF-8, так и UTF-16)?

А то что-то меня смущает автоматически переключаться в Unicode, если в писалку трека упадёт Unicode, и оставаться в Ansi, если данные будут падать только Ansi. По умолчанию можно даже сделать Ansi, пусть и с потерями будет.

Сейчас трек пишется в такие форматы:
TVSAGPS_TrackType = (ttPLT, ttGPX, ttNMEA, ttGarmin{, ttKML});
Последний закомментирован. Соответственно покуда не раскомментирован, настройка будет работать только для GPX (а PLT, NMEA и Garmin писать только в Ansi).

Мнения? Возражения? Другие варианты?
(0012421)
vdemidov   
15-08-2013 05:23   
А может пусть всегда будет Ansi и фиг с ним? А для gpx пусть всегда будет UTF-8.
(0012422)
vasketsov   
15-08-2013 07:55   
Ну можно и так конечно. А если некто откроет gpx в блокноте, поправит текст, пересохранит в UTF-16 и потом обломится при загрузке - то ССЗБ.
Формально если сделать всегда UTF-8 - получим максимально работающий с минимальными переделками вариант отосительно текущего.
зы. Кстати, ЕМНИП, чтобы считалось что прога умеет работать с GPX, нужна поддержка обоих (UTF-8 и UTF-16).А вообще можно же и в cp1251 сохранять, и в других.
(0012423)
vdemidov   
15-08-2013 08:26   
Ну для чтения поддержка UTF-16 и тд. нужна, а вот для записи, вполне можно ограничиться UTF-8
(0012440)
vasketsov   
15-08-2013 12:33   
Всё. По сабжу остались только Resume.