Přejít na obsah


Fotka

Obsah GPX po exportu


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

#1 javla

javla

    Advanced Member

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

Publikováno 17 říjen 2007 - 10:41

Není to právě 100% kompatibilní s originál GPX z PQ. Jednak je tu oproti originálu použit ![CDATA[ což je sice z hlediska XML OK, ale viděl jsem softwary, které to parsují i jinak než XML parsery (jako textový soubor) a ty pak zbytečně obsahují tuto obálku obsahu. Pak mám ještě detail k obsahu tagu <desc>. Originál obsahuje i typ cache, což je v případě importu do programu který typ nerozlišuje jinak (například PatchAway) jediná informace o typu která je zde dostupná. U BeelineGPS se po prostém kliknutí na kešku taky zobrazí jen obsah tohoto tagu a když uiž je tam obtížnost, měl by tam být i typ.
  • 0
Jana a Vlasta (JaVla) (PDA FS Loox N560)

#2 HaLuMa

HaLuMa

    Autor Geogetu

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

Publikováno 17 říjen 2007 - 11:20

Exporty jsou uzivatelem modifikovatelne, tedy kdyz se ti nelibi, co v kterem poli je, udelej si vlastni exportni filtr dle tvych pozadavku. Nejjednodussi je zkopirovat prislusny exportni skript pod novym jmenem, a upravit si jej. Jinak CDATA je pouzito, protoze jinak se musi slozite zakodovat vse,co dle XML standardu nesmi uvnitr tagu byt. Tedy ruzne specielni znaky, diakritika, atd. Nevim jestli to stoji za tu praci kvuli nejakemu softwaru, ktery ignoruje XML specifikaci. neni jednodussi zbuzerovat autora toho chybneho softu, aby umel i CDATA?
  • 0

#3 Crocky

Crocky

    Advanced Member

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

Publikováno 26 říjen 2007 - 19:51

Ahoj, díky za GeoGet, docela se mi s ním dobře pracuje.

Mám ale podezření na chybu v exportních funkcích - konkrétně funkci UtfToAscii.
Napsal jsem si konverzi jména kešky, kterou následně použiji jako cdata(s1). Takto to funguje:

s1 := ReplaceString(UtfToAscii(s), ' ', '');
s1 := ReplaceString(s1, '´', ''''); // <------ PROBLEM
s1 := copy(s1, 1, 8);


Řádka označená PROBLEM by tam ale správně vůbec nemusela být, ne? Protože ten divný apostrof se má přehodit na normální apostrof funkcí UtfToAscii. Každopádně ten divný apostrof (byte 180 = 0xb4) uvnitř CDATA mi shodí POI Loader. Proto jsem musel přidat explicitní replace = řádku PROBLEM.

Je to chyba nebo ne? Bug nebo fíčura?
Ahoj

Edit: Jo, taky mi to nechalo u keše GC13WPG v názvu znak copyrightu, to taky není Ascii.
  • 0

#4 Crocky

Crocky

    Advanced Member

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

Publikováno 27 říjen 2007 - 11:26

Ještě doplním: nakonec jsem tu funkci přepočtu jména musel udělat takto:

function SmartName(s: string): string;
var
s1: string;
begin
s1 := ReplaceString(UtfToAscii(s), ' ', '');
s1 := ReplaceString(s1, '´', '''');
s1 := ReplaceString(s1, '©', '©');
s1 := ReplaceString(s1, 'ä', 'a');
s1 := ReplaceString(s1, 'ö', 'o');
s1 := ReplaceString(s1, '[', '(');
s1 := ReplaceString(s1, ']', ')');
s1 := ReplaceString(s1, '»', '''');
s1 := ReplaceString(s1, '«', '''');
s1 := ReplaceString(s1, 'ˇ', '!');
s1 := copy(s1, 1, 8);
result := s1
end;


Prosím Tě, jak to teda je s UtfToAscii? Já jsem přepokládal, že konvertuje to 7 bitového ascii (0x00 .. 0x7f).
Dík J.
  • 0

#5 HaLuMa

HaLuMa

    Autor Geogetu

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

Publikováno 27 říjen 2007 - 12:12

Jeste jsem nemel cas to ani proverit. :| Bud trpelivy.
  • 0

#6 Crocky

Crocky

    Advanced Member

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

Publikováno 27 říjen 2007 - 17:35

Jasně, promiň, nehoním Tě, bál jsem se, že ta otázka zapadla.
  • 0

#7 HaLuMa

HaLuMa

    Autor Geogetu

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

Publikováno 29 říjen 2007 - 22:43

Tak jsem se na to kouknul a zjistil, ze se omylem neprevadi do US-ASCII, ale do ISO-8859-1. To vysvetluje, proc tam nektere ty znaky zustaly. v dalsi verzi to jiz snad bude delat spravnou transliteraci, jak bylo puvodne zamysleno.
  • 0




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

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

Reklama