Přejít na obsah


Fotka

Ještě bych chtěl poprosit o radu, jak přidat final waypoint ke kešce


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

#1 Kreten8

Kreten8

    Advanced Member

  • Members
  • PipPipPip
  • 1 754 příspěvků(y)

Publikováno 02 červen 2022 - 12:20

Koukám do popisu class u kešy a waypointu a nějak z toho nejsem moudrý, jak přidat final waypoint. Může mě někdo nasměrovat, jakou metodou se waypoint přidává?


  • 0

#2 mpik

mpik

    Advanced Member

  • Members
  • PipPipPip
  • 8 783 příspěvků(y)

Publikováno 02 červen 2022 - 12:50

Jsi v sekci Geoget. Tak ti jde o přidání Final waypointu k tebou založené keši na webu, nebo o přidání vypočteného Final waypointu do tvé lokální databáze v Geogetu?


  • 0

#3 vkvkvk

vkvkvk

    Advanced Member

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

Publikováno 02 červen 2022 - 13:41

Myslíš něco takového:

procedure CreateWpt(ZCACHECODE,
                    ZCOORDLAT, 
                    ZCOORDLON, 
                    ZNAME,
                    ZCOMMENT,
                    ZDATECREATED,
                    PrefixID,
                    ZTYPElong,
                    ZDESC: string
                   );
var
    wpt: TWpt;
begin
    wpt := TWpt.Create();
    wpt.ParentID :=  ZCACHECODE;
    wpt.LatNum := StrToFl(ZCOORDLAT);
    wpt.LonNum := StrToFl(ZCOORDLON);
    wpt.Name := ZNAME;
    wpt.Updated := StrToDate(ZDATECREATED);
    wpt.PrefixID := PrefixID;
    wpt.WptType := ZTYPElong;
    wpt.Description := ZDESC;
    wpt.Flags := 0;
    wpt.Save();
    
    TestGeoGetDbVersion();
    GEOGET_DB.ParamsClear();
    GEOGET_DB.AddParamInt(':key', wpt.Key);
    GEOGET_DB.AddParamText(':text', ZCOMMENT);
    GEOGET_DB.ExecSQL('UPDATE waypoint SET comment=:text WHERE key=:key');
end;

Souřadnice se musí zadávat přes LatNum. Použiješ-li textovou variantu, tak si naběhneš jako já kdysi. Posledních 5 řádků je jen kvůli zapsání komentáře.


  • 0

#4 HaLuMa

HaLuMa

    Autor Geogetu

  • Members
  • PipPipPip
  • 14 515 příspěvků(y)

Publikováno 02 červen 2022 - 15:32

Těch posledních pět řádků může3 vesele nahradit voláním:

 

wpt.updatecomment(ZCOMMENT);


  • 1

#5 Kreten8

Kreten8

    Advanced Member

  • Members
  • PipPipPip
  • 1 754 příspěvků(y)

Publikováno 03 červen 2022 - 8:35

Mockrát děkuji za vzorový příklad, se já chci odvolávat na class ze seznamu GC, tak to se mi snad podaří modifikovat.


  • 0

#6 Kreten8

Kreten8

    Advanced Member

  • Members
  • PipPipPip
  • 1 754 příspěvků(y)

Publikováno 03 červen 2022 - 9:15

Ale ještě bych potřeboval další radu, našel jsem funkci FormatCoordNum ale já bych potřeboval funkci k ní inverzní - tedy z lidského tvaru na lat a lon, které se do waypointu zapisuje a v seznamu funkcí jsem nic vhodného nenašel.


  • 0

#7 HaLuMa

HaLuMa

    Autor Geogetu

  • Members
  • PipPipPip
  • 14 515 příspěvků(y)

Publikováno 03 červen 2022 - 9:29

ParseWgsStr


  • 1

#8 Kreten8

Kreten8

    Advanced Member

  • Members
  • PipPipPip
  • 1 754 příspěvků(y)

Publikováno 03 červen 2022 - 9:33

Děkuji, to jsem nějak přehlédnul


  • 0

#9 Kreten8

Kreten8

    Advanced Member

  • Members
  • PipPipPip
  • 1 754 příspěvků(y)

Publikováno 03 červen 2022 - 10:29

Mockrát děkuji všem za rady, už mi to funguje, jen nevím, jestli mám skript zveřejnit - vypočítá GPS souřadnice reverzního wheriga a buď najde ty tři šestimístné kódy v listingu, nebo když je nenajde tam, tak se koukne do poznámky kešky, jestli tam nejsou náhodou spočítané, když je to složitější wherigo, kde ty šestimístné kódy nejsou přímo v listingu ale nějak se počítají


  • 0

#10 mirek454

mirek454

    mirek454

  • Members
  • PipPipPip
  • 1 209 příspěvků(y)

Publikováno 03 červen 2022 - 12:02

Asi bych to nezveřejňoval. Jeden takový je zveřejněný už hodně dlouho
  • 0

#11 Kreten8

Kreten8

    Advanced Member

  • Members
  • PipPipPip
  • 1 754 příspěvků(y)

Publikováno 03 červen 2022 - 12:05

A ještě bych chtěl poprosit o radu s regulárním výrazem.

U kešky https://www.geocachi...udapest-edition mi to vrátí seznam viz přiložený obrázek a není mi jasné, kde k těm dalším šestimístným číslům přišel.

Mám tam tento kód:

       begin
         Kod:=RegexExtract('\d{6}.*\s*.*\d{6}.*\s*.*\d{6}', GC.LongDescription);
         if Kod > '' then
             begin
               Kod1:=RegExSubstitute('(\d{6}).*\s*.*\d{6}.*\s*.*\d{6}', Kod, '$1');
               Kod2:=RegExSubstitute('\d{6}.*\s*.*(\d{6}).*\s*.*\d{6}', Kod, '$1');
               Kod3:=RegExSubstitute('\d{6}.*\s*.*\d{6}.*\s*.*(\d{6})', Kod, '$1');
               Kod:=Kod1+CRLF+Kod2+CRLF+Kod3;
               MessBox(Kod, 'Nalezeno', 0);
               vyresit(Kod);
             end
           else
             MessBox('Nenalezeno', 'ERR', 0);
       end      
 

Přiložené miniatury

  • vysledek.png

  • 0

#12 berda

berda

    Advanced Member

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

Publikováno 03 červen 2022 - 12:36

Tak přišel k nim v listingu... Dělá to přesně to, co sis napsal. Šestimístné číslo přeci nemusí být jen kód, ale třeba i (část) odkaz(u). A to je přesně tenhle případ.


  • 0
Berda

#13 Kreten8

Kreten8

    Advanced Member

  • Members
  • PipPipPip
  • 1 754 příspěvků(y)

Publikováno 03 červen 2022 - 17:28

To že v listingu jsou i jiná šestimístná čísla vím, ale nějak mi nesedí to jejich pořadí a navíc ten regulární výraz by měl ukázat jen první tři, tak proč jich je tam šest nebo třeba i devět, to mi na ton nějak nesedí.
  • 0

#14 gord

gord

    Advanced Member

  • Members
  • PipPipPip
  • 10 110 příspěvků(y)

Publikováno 03 červen 2022 - 17:50

regularni prikazy muzes testovat treba na https://regex101.com/ nebo https://regexr.com/ (podobnych stranek najdes urcite vic).

 

Tam uvidis, co presne je v tom textu vybrane a proc. A muzes ten regularni vyraz uypravovat a hned koukat, co se zmenilo ve vysledku.


  • 1

MHD/PID vybranych mest CR jako POI (diskuse)
GeoGet:
- Combine - automatizace opakovanych cinnosti (diskuse, dávky)

Stator - statistiky y GeoGetu (diskuse)

- Spoiler - uložení spoilerů do GPS jako POI (diskuse)

- Náhrada GJ legálními postupy

 


#15 Kreten8

Kreten8

    Advanced Member

  • Members
  • PipPipPip
  • 1 754 příspěvků(y)

Publikováno 06 červen 2022 - 13:41

no mě tu chybí (nebo nevím jak použít) toto https://www.php.net/...n.modifiers.php je tam U které způsobí, že regulární výraz vyhodnotí ty nejblizší hodnoty, které mu vyhovují, standardně vyhledává ten největší rozsah, který mu vyhovuje

jinak odkazované stránky na testování regulárních výrazů mě neuspokojili - ta první, když jsem do ní zadal listing a můj regulární výraz, tak mi oznámila toto: Catastrophic backtracking has been detected and the execution of your expression has been halted. To find out more and what this is, please read the following article: Runaway Regular Expressions a ta druhá mi jako \d{6} vybrala toto:

005197</strong></p>
<p><strong>415505</strong></p>
<p><strong>020351
čemuž vůbec nerozumím, když by to mělo být jen šest číslic a nic jiného
  • 0

#16 gord

gord

    Advanced Member

  • Members
  • PipPipPip
  • 10 110 příspěvků(y)

Publikováno 06 červen 2022 - 16:31

Pouzij trochu upraveny regularni vyraz (do prvniho odkazu, co jsem psal vyse):

 

\s*(\d{6})\s*.*?(\d{6})\s*.*?(\d{6})\s*.*?

 

a uvidis, co ti to dava. Ja myslim, ze takto jednoduse ta cisla neziskas. Invence autoru, jak je napsat, je bezbreha. Nemas sanci to takto snadno postihnout.

 

EDIT: Jo a mimochodem, tohle:

Kod1:=RegExSubstitute('(\d{6}).*\s*.*\d{6}.*\s*.*\d{6}', Kod, '$1');
Kod2:=RegExSubstitute('\d{6}.*\s*.*(\d{6}).*\s*.*\d{6}', Kod, '$1');
Kod3:=RegExSubstitute('\d{6}.*\s*.*\d{6}.*\s*.*(\d{6})', Kod, '$1');
Kod:=Kod1+CRLF+Kod2+CRLF+Kod3;

lze napsat i rozumneji:

Kod:=RegExSubstitute('(\d{6}).*\s*.*(\d{6}).*\s*.*(\d{6})', Kod, '$1'+CRLF+'$2'+CRLF+'$3');

Tento příspěvek byl upraven od gord: 06 červen 2022 - 16:38

  • 0

MHD/PID vybranych mest CR jako POI (diskuse)
GeoGet:
- Combine - automatizace opakovanych cinnosti (diskuse, dávky)

Stator - statistiky y GeoGetu (diskuse)

- Spoiler - uložení spoilerů do GPS jako POI (diskuse)

- Náhrada GJ legálními postupy

 





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

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

Reklama