SASGIS - SAS.Планета
View Issue Details
0001334SAS.ПланетаРефакторингpublic13-06-2012 19:4210-10-2012 11:44
zed 
Garl 
normalminoralways
closedfixed 
WindowsXPSP3
.Nightly 
120808120808 
0001334: Варнинг в TGeoCoderByURL.ParseResultToPlacemarksList
В той функции сам чёрт ногу сломит, так ещё и варнинг вылез и глаза мозолит.

[DCC Warning] u_GeoCoderByURL.pas(927): W1035 Return value of function 'TGeoCoderByURL.ParseResultToPlacemarksList' might be undefined
No tags attached.
Issue History
13-06-2012 19:42zedNew Issue
13-06-2012 20:13GarlNote Added: 0007387
13-06-2012 20:20GarlNote Added: 0007388
13-06-2012 20:20GarlAssigned To => Garl
13-06-2012 20:20GarlStatusnew => assigned
14-06-2012 05:36vdemidovTarget Version => 120808
14-06-2012 16:17zedNote Added: 0007391
14-06-2012 16:35GarlNote Added: 0007392
14-06-2012 20:21GarlNote Added: 0007393
14-06-2012 20:45zedNote Added: 0007394
14-06-2012 20:49GarlNote Added: 0007395
14-06-2012 21:17GarlNote Added: 0007396
14-06-2012 21:18zedNote Added: 0007397
17-06-2012 10:40GarlStatusassigned => resolved
17-06-2012 10:40GarlResolutionopen => fixed
05-07-2012 05:49vdemidovFixed in Version => 120808
10-10-2012 11:44TolikStatusresolved => closed

Notes
(0007387)
Garl   
13-06-2012 20:13   
самое интересное что при повторной компиляции варнинг пропадает :)
и как его ловить?
(0007388)
Garl   
13-06-2012 20:20   
может 1200 строк сильно много?
завтра попробую разбить на 2 отдельных геокодера:
отдельно URL + отдельно координаты
(0007391)
zed   
14-06-2012 16:17   
>самое интересное что при повторной компиляции варнинг пропадает
У меня ничего никуда не пропадает.

>может 1200 строк сильно много?
Нет. Что-то не в порядке именно в той функции.
(0007392)
Garl   
14-06-2012 16:35   
переделываю чуток, ещё в процессе.
(0007393)
Garl   
14-06-2012 20:21   
сейчас почистил \.dcu , и вылезли ещё варнинги

ImagingFormats строка 1639

[DCC Warning] ImagingFormats.pas(1639): W1035 Return value of function 'BuildMappingTable' might be undefined
такая же петрушка с Result := nil;
(0007394)
zed   
14-06-2012 20:45   
>сейчас почистил \.dcu
Аналогичный эффект будет, если ты будешь билдить проект (Build Project), а не компилить (Compile Project).

>и вылезли ещё варнинги
Это совершенно независимый варнинг от стороннего компонента. Там ещё и от GR32 есть варнинги. Повылазили после недавнего обновления компонентов.
(0007395)
Garl   
14-06-2012 20:49   
if <1> then begin
end else
if <2> then begin
end else
if <3> then begin
end else
if <4> then begin
end else
begin
end

непонятно почему но при коментраии некоторых условий варнинг пропадает!
в частности
// if (PosEx('maps.yandex.ru/?oid=', Vlink, 1) > 0 )then begin
// Vlink := ReplaceStr(Vstr,'''','');
// sname := 'yandex';
// i := PosEx('{ll:', Vlink, 1);
// if i=0 then i := PosEx(',ll:', Vlink, 1);
// j := PosEx(',', Vlink, i+1);
// slon := Copy(Vlink, i + 4, j - (i + 4));
// i := j;
// j := PosEx(',', Vlink, i+1);
// slat := Copy(Vlink, i + 1, j - (i + 1));
// sdesc := '[ '+slon+' , '+slat+' ]';
// end else
(0007396)
Garl   
14-06-2012 21:17   
всему виной строка
Vlink := ReplaceStr(Vstr,'''','');
без неё варнинга нету :)
(0007397)
zed   
14-06-2012 21:18   
Попробуй вычленить каждый глобальный if else в отдельную функцию. А ещё лучше сделать одну функцию парсера (на основе регэксов), которой на вход подавать регулярное выражение (шаблон), по которому и проверять полученный результат до первого совпадения.