Přejít na obsah


Fotka

Změna prefixu


  • Pokud chcete vložit odpověď, přihlašte se
11 odpovědí na toto téma

#1 frantavrana

frantavrana

    Newbie

  • Members
  • Pip
  • 7 příspěvků(y)

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
  • 0

#2 HaLuMa

HaLuMa

    Autor Geogetu

  • Members
  • PipPipPip
  • 11 450 příspěvků(y)

Publikováno 06 srpen 2012 - 19:23

A co tam mas za prefix ted?
  • 0

#3 frantavrana

frantavrana

    Newbie

  • Members
  • Pip
  • 7 příspěvků(y)

Publikováno 06 srpen 2012 - 19:24

Právě že jsou tam různý... FW, FN, SF...
  • 0

#4 frantavrana

frantavrana

    Newbie

  • Members
  • Pip
  • 7 příspěvků(y)

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;
  • 0

#5 S474N

S474N

    Advanced Member

  • Members
  • PipPipPip
  • 6 522 příspěvků(y)

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'

  • 0
Vložený obrázek 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).

#6 HaLuMa

HaLuMa

    Autor Geogetu

  • Members
  • PipPipPip
  • 11 450 příspěvků(y)

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?
  • 0

#7 HaLuMa

HaLuMa

    Autor Geogetu

  • Members
  • PipPipPip
  • 11 450 příspěvků(y)

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...
  • 0

#8 frantavrana

frantavrana

    Newbie

  • Members
  • Pip
  • 7 příspěvků(y)

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č...
  • 0

#9 HaLuMa

HaLuMa

    Autor Geogetu

  • Members
  • PipPipPip
  • 11 450 příspěvků(y)

Publikováno 06 srpen 2012 - 20:31

udelal jsi obnoveni zobrazeneho seznamu? Jinak se ti tam budou ukazovat predchozi data.
  • 0

#10 frantavrana

frantavrana

    Newbie

  • Members
  • Pip
  • 7 příspěvků(y)

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...
  • 0

#11 HaLuMa

HaLuMa

    Autor Geogetu

  • Members
  • PipPipPip
  • 11 450 příspěvků(y)

Publikováno 06 srpen 2012 - 20:59

No, rozhodne jsi tam nemel treba to volani SAVE, aby se ti ta zmena ulozila. ;)
  • 0

#12 frantavrana

frantavrana

    Newbie

  • Members
  • Pip
  • 7 příspěvků(y)

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




1 uživatel(ů) prochází toto téma

0 uživatelů, 1 návštěvníků 0 anonymních uživatelů

Reklama