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

WinCachebox rev.82: Fehler beim Cachewolf-Import

SurFan

Geocacher
Hi,
sorry, dass ich schon wieder mit einem Problem komme. Beim Import aus Cachewolf kommt es nach Betätigen des Close-Buttuns zu einer Exception. Die Cachebox sdf ist anschließend kaputt. Beim Neustart von Wincachebox kommt direkt nach dem Splash-Screen derselbe Fehler.
Code:
 System.Data.SqlTypes.SqlNullValueException: Die Spalte an der angegebenen Ordinalzahl (25) enthält einen DBNull-Wert, der nicht als integrierter .NET-Systemtyp repräsentiert werden kann. Verwenden Sie die Use SqlTypes- oder IsDBNull-Eigenschaft.
Wincachebox beendet sich anschließend. Anbei die Debug.txt Ich wollte auch ein Testverzeichnis anhängen, leider kann ich im Augenblick keine Dateien hochladen. Falls die benötigt werden, lass ich mir was einfallen: Hied die Debug.txt:
Code:
12:36 Main.ApplyFilter: Difficulty >= 2 and Difficulty <= 10 and Terrain >= 2 and Terrain <= 10 and Size >= 0 and Size <= 4 and Rating >= 0 and Rating <= 500 and Type in (0,1,2,3,4,5,6,7,8,9,10)
12:37 --- cachebox startup, rev 82 ----------------------------------------------------------
12:37 FilterProperties(0,0,0,0,0,0,0,0,0,1,5,1,5,0,4,0,5,True,True,True,True,True,True,True,True,True,True,True,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,): System.IndexOutOfRangeException: Der Index war außerhalb des Arraybereichs.
   bei WinCachebox.FilterProperties..ctor(String serialization)
12:37 Main.ApplyFilter: Difficulty >= 2 and Difficulty <= 10 and Terrain >= 2 and Terrain <= 10 and Size >= 0 and Size <= 4 and Rating >= 0 and Rating <= 500 and Type in (0,1,2,3,4,5,6,7,8,9,10)
12:37 System.Data.SqlTypes.SqlNullValueException: Die Spalte an der angegebenen Ordinalzahl (25) enthält einen DBNull-Wert, der nicht als integrierter .NET-Systemtyp repräsentiert werden kann. Verwenden Sie die Use SqlTypes- oder IsDBNull-Eigenschaft.
   bei System.Data.SqlServerCe.SqlCeDataReader.GetDateTime(Int32 ordinal)
   bei WinCachebox.Geocaching.Cache..ctor(SqlCeDataReader reader)
   bei WinCachebox.Geocaching.Cache.LoadCaches(String where, List`1 caches)
   bei WinCachebox.Geocaching.Cache.LoadCaches(String where)
   bei WinCachebox.Form1.ApplyFilter(FilterProperties props)
   bei WinCachebox.Form1..ctor()
   bei WinCachebox.Program.Main()
Ralph
 

Anhänge

  • test.zip
    182,9 KB · Aufrufe: 6

klausundelke

Geowizard
...und wenn Ralph zwei Zeilen weiter unten gelesen hätte wäre er auch über meinen Post von heute morgen gestolpert.

http://www.geoclub.de/viewtopic.php?f=114&t=53381
 
OP
S

SurFan

Geocacher
Mist, einmal in Hektik (meine Frau hatte schon die Jacke an, ich wollte "schnell" noch eben die Daten auf mein Smartphone schaufeln) ohne Suche einen Bug gepostet, schon erwischt es mich. Sorry
Ralph
 
OP
S

SurFan

Geocacher
Hi,
ich habe gerade ein weiteres kleines Problem beim Cachewolf-Import festgestellt:
Bei einigen Caches (z.B.: GC15TQT) endet die Image-Url mit ".jpg/". Der Schrägstrich sorgt dafür, dass der Import mit einer Exception auf die Nase fällt, die nicht abgefangen wird, sodass der Import komplett abbricht. Am liebsten wäre mir, wenn in solch einem Fall der überflüssige Schrägstrich am Ende ignoriert werden könnte, könnte aber auch mit einem fehlenden Bild leben, wenn denn nur der Import nicht komplett abbrechen würde.

Danke
Ralph
 

Ging-Buh

Geowizard
SurFan schrieb:
Bei einigen Caches (z.B.: GC15TQT) endet die Image-Url mit ".jpg/". Der Schrägstrich sorgt dafür, dass der Import mit einer Exception auf die Nase fällt, die nicht abgefangen wird, sodass der Import komplett abbricht. Am liebsten wäre mir, wenn in solch einem Fall der überflüssige Schrägstrich am Ende ignoriert werden könnte, könnte aber auch mit einem fehlenden Bild leben, wenn denn nur der Import nicht komplett abbrechen würde.
Kannst du vielleicht mal eine XML von CacheWolf hochladen, bei der dieses Problem besteht?
 
OP
S

SurFan

Geocacher
Hi,
Ging-Buh schrieb:
Kannst du vielleicht mal eine XML von CacheWolf hochladen, bei der dieses Problem besteht?
ist beigefügt. Ich habe testweise in cachewolfimport.cs (aktuelle SVN) hinter Zeile 979:
Code:
image.url = cmmatch.Groups[2].Value;
Code:
if (image.url.EndsWith("/"))
  image.url = image.url.Remove(image.url.Length-1);
eingefügt. (Sicherheitshalber auch für image.file ein paar Zeilen drüber) Dann läuft alles durch.

Ralph
 

Anhänge

  • gc15tqt.zip
    176 KB · Aufrufe: 6
OP
S

SurFan

Geocacher
Hi,

sorry, ich schon wieder:

Gibt es einen (triftigen) Grund dafür, dass nur nicht alle Logs übernommen werden? Z.Zt. werden max. 10 übernommen (Zeile 362 in cachewolfimport.cs SVN-Version). Falls ja: Könnte man das ggf. konfigurierbar machen. 10 sind mir eigentlich zu wenig

Ralph
 

Ging-Buh

Geowizard
SurFan schrieb:
Gibt es einen (triftigen) Grund dafür, dass nur nicht alle Logs übernommen werden? Z.Zt. werden max. 10 übernommen (Zeile 362 in cachewolfimport.cs SVN-Version). Falls ja: Könnte man das ggf. konfigurierbar machen. 10 sind mir eigentlich zu wenig
Hi SurFan,

deine Posts hören sich fast so an, als ob du selbst programmieren kannst? Hättest du die Möglichkeit, hier aktiv mitzuarbeiten, evtl. für solch ein Problem einen Patch zu erstellen? Es ist hier jeder herzlich dazu eingeladen.

Natürlich würde es Sinn machen, die Anzahl der Logs selbst festlegen zu können, z.B. mit einem Eingabefeld im Import-Dialog.
 
OP
S

SurFan

Geocacher
Ging-Buh schrieb:
deine Posts hören sich fast so an, als ob du selbst programmieren kannst?
Wir hatten schon mal kurz drüber gesprochen, dass ich programmieren kann, aber bisher (fast) ausschließlich in Delphi und (bis auf die paar Zeilen WinCachebox-Anmerkungen) überhaupt noch nicht in C#. Aber so Kleinigkeiten dürften auch schon jetzt kein Problem sein. Allerdings ist meine Zeit rel. knapp bemessen, und ich habe keinen Zugriff auf VS Professional, sodass Cachebox aussen vor bleiben würde.

Natürlich würde es Sinn machen, die Anzahl der Logs selbst festlegen zu können, z.B. mit einem Eingabefeld im Import-Dialog.
Eher schwebt mir da vor, beim Cachebox-Export für das Smartphone eine Begrenzug einzuführen, denn ehrlich gesagt wüsste ich nicht, warum auf dem Desktop nicht alle Logs, die auch in Cachewolf präsent sind, vorhanden sein sollten. Aus Cachebox-Performance-Gründen auf dem Smartphone würde mir beim Export eine Einstellung "Logs zurück bis zum tt.mm.jjjj aber maximal x Stück in der Cachebox-DB speichern" eher gefallen.

Ralph
 
Oben