• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Änderung im Dateiformat

Engywuck

Geowizard
Liebe Gemeinde,

im Zuge einer Verbesserung des existierenden Dateiformats habe ich einige Änderungen durchgeführt. CacheWolf schreibt ab Build 1787 ein anderes Dateiformat, kann jedoch das bisherige Dateiformat weiterhin lesen (auch gemischt: die cache.xml-Dateien dürfen parallel im alten und neuen Format vorliegen).
Die bisherige CacheWolf-Version kann aber (naturalemente) das neue Format nicht lesen.
Bei mir hat alles gut geklappt - wer auf Nummer sicher gehen will, sichert aber dennoch vor dem Einsatz der neuen Version seine Profildateien. Man hat schon Pferde vor der Apotheke...
Als spontaner Effekt sollte sich eine Verbesserung der Ladegeschwindigkeit (1/3 bis 1/5 weniger Ladezeit) zu bemerken sein. Gerade bei großen Profilen auf dem PDA eine Hilfe.
Für Entwickler interessant: Durch das neue Format können ca. 50 weitere boolsche Felder abgespeichert werden, ohne dass das Datenformat geändert werden muss. Bei bytewertigen Feldern ist noch Platz für 2 (vielleicht sogar 3) weitere Felder, ehe das Format erweitert werden muss.
Bei Problemen bitte direkt melden.

Für die Freaks, die mit eigenen Programmen die CacheWolf-Daten lesen: Hier sind dann Anpassungsarbeiten notwendig.
Wem die Zusammenarbeit mit solchen Programmen, die sich noch auf die alte Version stürzen, wichtig ist, sollte erstmal nicht auf die neue Version updaten, sonst klappt das nämlich nicht mehr.

Schöne Grüße,
E.
 

greiol

Geoguru
:D
als freak würde es mich freuen, wenn die index.xml und die waypoint.xml eine versionsnummer drin hätten. dann könnte man eine extrem einfache abfrage machen ob man mit den versionen klarkommt. wäre sowas machbar?
z.b. satt
Code:
<CACHEDETAILS>
dann
Code:
<CACHEDETAILS version="1787">
?
 

MiK

Geoguru
Ich zitiere mal aus SVN-Mail:
--- trunk/src/CacheWolf/CacheHolderDetail.java 2009-05-06 19:25:59 UTC (rev 1786)
+++ trunk/src/CacheWolf/CacheHolderDetail.java 2009-05-07 18:18:21 UTC (rev 1787)
@@ -318,6 +318,7 @@
if(getParent().getWayPoint().length()>0){
detfile.print("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\r\n");
detfile.print("<CACHEDETAILS>\r\n");
+ detfile.print("<VERSION value = \"2\"/>\n");
detfile.print("<DETAILS><![CDATA["+LongDescription+"]]></DETAILS>\r\n");
detfile.print("<COUNTRY><![CDATA["+Country+"]]></COUNTRY>\n");
detfile.print("<STATE><![CDATA["+State+"]]></STATE>\n");
 
OP
Engywuck

Engywuck

Geowizard
Ergänzend: Die Versionsangabe findet sich sowohl in index.xml als auch in den Cache.xml-Dateien. Das alte Format hat keine Versionsangabe, weshalb die Versionsvariable im Code initial mit 1 belegt wird.

Gruß,
E.
 

t31

Geowizard
... schreibt die neue Version automatisch das neue Dateiformat beim Speichern zurück oder nur für neu eingelesene Caches?
 
OP
Engywuck

Engywuck

Geowizard
Wenn gespeichert wird, wird immer im neuen Format geschrieben. Den Luxus, mehrere Versionen zu unterstützen, hab ich jetzt mal nur im Ladevorgang eingebaut ;-)

Gruß,
E.
 

arbor95

Geoguru
Habe grad auf in der Entwicklungsumgebung ein Update auf 1787 gemacht und ein vorhandenes Profil geladen und gespeichert.

Die "alte" CW-Version liest aber immer noch den Datenbestand ein.


? was mag das sein ? (Habe nicht in die Datenstruktur nach dem Speichern hineingeschaut)
 

greiol

Geoguru
"lesen" kann die alte version, bloss kann sie nichts mit dem inhalt anfangen. schon in der übersicht dürften D,T und Typ fehlen. Bei den Datails geht es dann weiter ...
 
OP
Engywuck

Engywuck

Geowizard
Waaaaah, ihr wahnsinnigen....
Eine ganz schlechte Idee ist es, den Datenbestand mit der neuen Version abzuspeichern, dann mit der alten einzulesen und dann nochmal abzuspeichern. Dann hast Du Deine index.xml nämlich effektiv unbrauchbar gemacht - so dass für keine Version noch brauchbare Daten drinstehen.

Gruß,
E.
 

greiol

Geoguru
deshalb haben wir ja jetzt die versionsnummer, die man im nächsten schritt nutzen kann um cw klar zu machen, dass er die finger von neueren profilen lässt :D :D :D
 

huzzel

Geowizard
Engywuck schrieb:
Für die Freaks, die mit eigenen Programmen die CacheWolf-Daten lesen: Hier sind dann Anpassungsarbeiten notwendig.
Wem die Zusammenarbeit mit solchen Programmen, die sich noch auf die alte Version stürzen, wichtig ist, sollte erstmal nicht auf die neue Version updaten, sonst klappt das nämlich nicht mehr.
Bekenne mich als so ein Freak :mumie3: :D .

Um mir das umstricken zu erleichtern, fände ich es super, wenn Du mal eine Beispieldatei hier als code einstellen könntest, damit man sehen kann, wie man umstricken muss.

Ich für meinen Teil brauche ein Beispiel einer Cache.xml-Nachfolger-Datei, mit Hint und eine Wegpunkt.xml-Nachfolger-Date mit Wegpunktbeschreibung.

Danke schon mal :smile:
 

arbor95

Geoguru
wer sagt, dass ich gespeichert habe. habe mich nur gewundert, dass die alte version keinen fehler bringt. Auf den Dateninhalt habe ich nicht geachtet.

auf pda und pc hat man ja schnell verschiedene Versionen.

Übrigens sehe ich keine Versionsnummer. Ich habe mal eine (?neue?) Testdatei angehängt. Sie wird vom "alten" CW so wie ich sehe richtig gelesen , auch bezüglich Difficulty und Terrain etc...
 

Anhänge

  • index.zip
    921 Bytes · Aufrufe: 2

greiol

Geoguru
huzzel schrieb:
Bekenne mich als so ein Freak :mumie3: :D .

Um mir das umstricken zu erleichtern, fände ich es super, wenn Du mal eine Beispieldatei hier als code einstellen könntest, damit man sehen kann, wie man umstricken muss.
installier einfach eine zweite (neue) CW version parallel und lade einen cache rein. den kannst du dann auch direkt mit der darstellung in der alten version vergleichen.

parallel empfehle ich das studium des sourcecodes, denn was die einzelnen felder der neuen version bedeuten und wie sie aufgebaut sind, erschliesst sich mit dem code fast besser als mit einem prosatext.
 
OP
Engywuck

Engywuck

Geowizard
araber95 schrieb:
Ich habe mal eine (?neue?) Testdatei angehängt. Sie wird vom "alten" CW so wie ich sehe richtig gelesen , auch bezüglich Difficulty und Terrain etc...
Deine angehängte Datei hat auch die alte Struktur.

Gruß,
E.
 
OP
Engywuck

Engywuck

Geowizard
Wenn Du insb. von außerhalb (z.B. TortoiseSVN) die Änderungen einspielst, ist ein Refresh im Eclipse immer mal ne gute Idee.

Gruß,
E.
 

arbor95

Geoguru
hatte ich definitiv gemacht. erst nachdem ich einen der neuen dateien (profile.java) explizit geöffnet hatte, hat eclipse (hoffentlich) die anderen Änderungen auch berücksichtigt).
ansonsten thx for all
 

arbor95

Geoguru
Habe jetzt mal mir buildexe.bat neu erzeugt.
Beim Spidern will er 2 Cache aktualisieren beim ersten wirklichen aktualisieren erscheint:
java.lang.Error: Unresolved compilation problem:
The method setNoFindLogs(byte) in the type CacheHolder is not applicable
for the arguments (int)

at CacheWolf.CacheHolderDetail.setCacheLogs(CacheHolderDetail.java:81)
at CacheWolf.SpiderGC.getCacheByWaypointName(SpiderGC.java:744)
at CacheWolf.SpiderGC.doIt(SpiderGC.java:553)
at CacheWolf.SpiderGC.doIt(SpiderGC.java:277)
at CacheWolf.MainMenu.onEvent(MainMenu.java:306)
at ewe.ui.Control.postEvent(Control.java)
at ewe.ui.MenuState.onEvent(MenuState.java)

Worauf ist das zurückzuführen ?
 
Oben