Změna prefixu
Vytvořeno od
frantavrana
, srp 06 2012 19:20
11 odpovědí na toto téma
#1
Publikováno 06 srpen 2012 - 19:20
Ahoj, chtěl jsem si naprogramovat script, kterej mi změní prefix finálního waypointu na FI...
protože LOCUS jiný prefix nepřesouvá na finální souřadnice a nechce se mi to klikat po jednom.
Nejspíš mi tam chybí nějaká banalita, ale nevim si s tim rady (už problém s tim, že se některý wpts netváří jako final, i když jsou :-( jsem řešil hodně za pomoci kamene)
Díky, Honza
Můj pokus je v příloze
#4
Publikováno 06 srpen 2012 - 19:28
nějak nevim... došel soubor s kodem? nikde ho nevidim... tak radši takhle :-)
procedure PluginWork;
var
i: integer;
fi:String;
pokracovat:boolean;
begin
fi := 'FI';
pokracovat := true;
for i:=0 to GC.Waypoints.Count-1 do
begin
if GC.Waypoints[i].prefixID = 'FI' then pokracovat := false;
end;
i:=-1;
while ((pokracovat=true) and (i < GC.Waypoints.Count-1)) do
begin
i := i+1;
if ((GC.Waypoints[i].WptType = 'Final Location') or (Copy(GC.Waypoints[i].Name,1,5)='Final' )) then // prvni finalovy wpt
begin
pokracovat := false;
GC.Waypoints[i].prefixID := fi;
end;
end;
end;
procedure PluginWork;
var
i: integer;
fi:String;
pokracovat:boolean;
begin
fi := 'FI';
pokracovat := true;
for i:=0 to GC.Waypoints.Count-1 do
begin
if GC.Waypoints[i].prefixID = 'FI' then pokracovat := false;
end;
i:=-1;
while ((pokracovat=true) and (i < GC.Waypoints.Count-1)) do
begin
i := i+1;
if ((GC.Waypoints[i].WptType = 'Final Location') or (Copy(GC.Waypoints[i].Name,1,5)='Final' )) then // prvni finalovy wpt
begin
pokracovat := false;
GC.Waypoints[i].prefixID := fi;
end;
end;
end;
#5
Publikováno 06 srpen 2012 - 19:54
Slo by to i primo na urovni SQL, ale vzdycky bys musel menit to FA na to, co zrovna tam mas.
UPDATE waypoint SET prefixid='FI' WHERE wpttype='Final Location' AND prefixid='FA'
GASP - statistiky z Geogetu na pár kliknutí (diskuze ke GASP)
UPOZORNĚNÍ- moje ICQ, Soukromé zprávy či email opravdu NESLOUŽÍ jako technická podpora.
Pro pokládání dotazů nebo rad využijte fórum (od toho tu je).
UPOZORNĚNÍ- moje ICQ, Soukromé zprávy či email opravdu NESLOUŽÍ jako technická podpora.
Pro pokládání dotazů nebo rad využijte fórum (od toho tu je).
#6
Publikováno 06 srpen 2012 - 20:02
Tvuj kod by mel spravne vypadat nejak takto (psano z hlavy bez kontroly a pod vlivem, tak to ber s rezervou...)
procedure PluginWork; var i: integer; fi:String; pokracovat:boolean; begin fi := 'FI'; pokracovat := true; //zjistim, jestli nahodoy waypoint FI uz neexistuje for i:=0 to GC.Waypoints.Count-1 do begin if GC.Waypoints[i].prefixID = fi then begin pokracovat := false; break; end; end; //a kdyz neexistuje, prolezu ty waypointy a prvni finalni predelam na FI if pokracovat then begin for i:=0 to GC.Waypoints.Count-1 do begin if Copy(GC.Waypoints[i].Name,1,5)='Final' then begin GC.Waypoints[i].prefixID := fi; GC.Waypoints[i].save; end; end; end; end;
Nicmene spravne reseni by bylo presvedcit autory LOCUSu, aby brali typ wapointu z jeho typu a ne z prefixu, ktery muze byt naprosto jakykoliv!
Mimochodem, cim jsi ty waypointy zakladal, ze tam nemas FI, coz je v Geogetu vychozi hodnota? To jsi to pokazde prepisoval?
#7
Publikováno 06 srpen 2012 - 20:03
S474N napsal/a:
Slo by to i primo na urovni SQL, ale vzdycky bys musel menit to FA na to, co zrovna tam mas.
UPDATE waypoint SET prefixid='FI' WHERE wpttype='Final Location' AND prefixid='FA'
jenze tim nehlidas duplicity, a navic jsou ty prefixy ruzne...
#8
Publikováno 06 srpen 2012 - 20:13
Jednou jsem zadával dvoje možný souřadnice, změnil prefix a pak se tam zachovával ten změněnej... pak jsem nějaký mysterky importoval a následně měnil jenom souřadnice (z otazníčků)...
Jinak ten tvůj kod jsem zkoušel, při kontrolnim výpisu to vypadalo dobře, ale ve finále se nic nezměnilo... nevim proč...
#9
Publikováno 06 srpen 2012 - 20:31
udelal jsi obnoveni zobrazeneho seznamu? Jinak se ti tam budou ukazovat predchozi data.
#10
Publikováno 06 srpen 2012 - 20:35
Já tomu asi nerozumim... aktualizoval jsem seznam, prohnal to tim znova a aktualizoval... a nic... restart geogetu, znova prohnal, znova aktualizace... a zase nic,
tak ještě jednou a najednou to funguje...
No nic... jsem si jistej, že tenhle kod jsem tam už taky měl předtim :-D asi mě to nemá rádo...
Nicméně díky za rychlé řešeni a pomoc...
#11
Publikováno 06 srpen 2012 - 20:59
No, rozhodne jsi tam nemel treba to volani SAVE, aby se ti ta zmena ulozila.
#12
Publikováno 06 srpen 2012 - 21:07
Já jsem pak ještě zkoušel i další úpravy po konzultaci s kámošem... takže i to save přišlo na řadu ;-) já se snažil, i když jsem čekal :-D
0 uživatel(ů) prochází toto téma
0 uživatelů, 0 návštěvníků 0 anonymních uživatelů