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

Bilder für Garmin "aufbereiten"

4Blackbirds

Geocacher
Hallo,

mit der neuesten Firmware für mein Dakota ist es möglich, die Bilder aus der Cache-Beschreibung mit auf das GPS zu bringen. Über die Funktion Grab Images bekomme ich die Bilder schon mal auf die Festplatte. Für das Garmin müssten die Bilder jetzt in die richtigen Unterverzeichnisse kopiert werden.

Für einen Cache mit dem Code GC34AH wäre das \H\A\GC34AH
Spoiler-Bilder müssten dann noch in ein Unterverzeichniss Spoilers.

Besteht die Möglichkeit, dies mit einem GSAK-Macro zu realisieren? Auf der GSAK-Seite unter "Command/Functions by Category" habe ich bei den Datei-System-Operationen keinen geeigneten Befehl gesehen.

Gruß
Carsten
 

Schnueffler

Geoguru
Natürlich kann man das mit einem Makro machen. Die Jungs von GSAK diskutieren da schon kräftig rum, wie man das in GSAK einbauen wird.

Für das Anlegen des Verzeichnisses mit diesem Namen wirst du aktuell noch keinen gesonderten Befehl finden. Wenn es den mal geben wird, dann muss er erst noch entwickelt werden. Aber warum auch? Man kennt doch den Waypoint des Caches und kann somit den Namen per Stringfunktionen aufsplitten und so den Pfad zusammen basteln. Dafür braucht man keine gesonderten Funktionen, sondern nur ein bißchen Verständnis der Strings und -Stringoperationen.
 

Schnueffler

Geoguru
Es gibt schon eine experimentelle Funktion die die Bilder auf das gerät kopiert. Ich denke, dass es nicht mehr lange dauern wird, bis das nun auch in den gängigen Export-Makros enthalten sein wird.

Aber Mike hat schon angekündigt, dass er sich da wohl weniger auf SpoilerSync verlassen will. Er wird wohl eher abwarten bis Groundspeak sein neues GPX-Format eingeführt hat, in dem auch die Links zu den Bildern enthalten sein werden. Dann kann man explizit nach diesen Bildern suchen und sie auch runter laden.

Details dazu findest du in diesem Post: http://gsak.net/board/index.php?showtopic=21156&st=40#
 
OP
4Blackbirds

4Blackbirds

Geocacher
Das mit den Strings ist schon klar, aber schreibt die Dateiausgabe auch die benötigten Pfade auf der Festplatte?
 

RainerSurfer

Geowizard
Ja, funktioniert schon brauchbar, obwohl es noch Alphastatus hat. Die Verzeichnisse werden angelegt. Nur die Spoilerbilder landeten bei mir nicht im Spoilerordner, die waren als normale Bilder zum cache zu sehen. Zudem waren mir die Nur-Spoiler Bilder zu wenig. Oft steckt ja auch wirklich notwendige Info in der Beschreibung. Also Makro geändert und jetzt liegen für ca 2000 Caches, 3000 Bilder am Oregon :D Inzwischen gibt es die Änderung schon offiziell. Jetzt noch extra Makro, soll aber in das Garmin-Exportmakro integriert werden.
 

Schnueffler

Geoguru
Genau. Und wenn dann Garmin endlich mal die Links zu den Bildern in das GPX integriert, wird man auch ganz gezielt zu einzelnen Caches die Bilder runter laden können, ohne die Funktion "Grab Images" zu benutzen, die immer alle Caches nach Bildern durchforstet.

Ich habe ja die Hoffnung, dass Groundspeak das bald auch in die Webseite integriert, jetzt, wo Opencaching dieses geile feature ja schon drin hat. Kann mir nicht vorstellen, dass Groundspeak Garmin lange diesen Vorsprung lassen wird. Die wären meiner Meinung nach durch dieses Update ziemlich im Zugzwang.
 

sally04

Geocacher
4Blackbirds schrieb:
Besteht die Möglichkeit, dies mit einem GSAK-Macro zu realisieren? Auf der GSAK-Seite unter "Command/Functions by Category" habe ich bei den Datei-System-Operationen keinen geeigneten Befehl gesehen.

Genau deswegen habe ich mir ein Tool ausserhalb von GSAK geschrieben.

Das Tool kann alle in GSAK mit "Grab Images..." heruntergeladen Cacheimages für den Upload auf einem Garmin aufbereiten.

Diese Bilder (Mindestgröße 80 Pixel) werden gegebenenfalls gedreht (Hochformat) und in das ausgewählte Verzeichnis kopiert.

Achtung, dies ist ein Test-Tool ohne Funktionsgarantie! Die Nutzung erfolgt auf eigene Gefahr.

Vorgehensweise:

- Zip Herunterladen und alle 3 Dateien in ein Verz. legen
- Die Spoiler2Garmin.Exe ausführen
- Eine GSAK Datenbank auswählen (macht nur Sinn wenn für diese DB Bilder heruntergeladen wurden)
- Ein Zielverzeichnis auswählen

Das Programm startet und kopiert alle Dateien in das ausgewählte Verzeichnis.

Es gibt keinen Support, keine Funktionsgarantie.
 

sally04

Geocacher
Eine neue Version.

- Es werden nicht mehr die Namen aus der GSAK Datenbank für die Bilder verwendet sondern die "Bildbeschreibung".
- Es werden jetzt auch Logfotos bearbeitet
- Spoiler werden auch in das Spoiler Verz. geschoben.

Eins ist geblieben:
sally04 schrieb:
Es gibt keinen Support, keine Funktionsgarantie.
 
OP
4Blackbirds

4Blackbirds

Geocacher
Danke.
Das kleine Tool funktioniert einwandfrei und hat mir bei einer kleinen Tradi-Runde viel arbeit mit tastatur und Maus erspart.
 

sally04

Geocacher
sally04 schrieb:
Eine neue Version.


Jetzt fehlt noch eine ansprechede Oberfläche, Konfigurierbarkeit von Optionen, optimieren der Bildergröße, Optimierung des Bilderupload, optionaler Luftbilder bzw. Kartendownload.......
 

maulwurfn2

Geocacher
Schönes Tool, auch wenn ich nicht weiß, ob ich, dieses oder das Macro nutzen werde...

sally04 schrieb:
Diese Bilder (Mindestgröße 80 Pixel) werden gegebenenfalls gedreht (Hochformat)

Auf meine Oregon 450 (ich denke das gilt für alle Oregon Modelle), werden die Bilder automatische der Drehrichtung des Geräts mitgedreht...
Wenn die Bilder jetzt mit dem Script gedreht werden, muss man immer den Kopf schief drehen, um das Bild richtig zu sehen :motz:

Eine Funktion, mit der man das Drehen der Bilder ausschalten kann wäre somit recht hilfreich.

Viele Grüße und danke für das schöne Skript
Christof
 

sally04

Geocacher
sally04 schrieb:
Eine neue Version.

Codename 4S (for Sally) ;-)

- Es werden immer 25 Caches rund um den aktuellen Centerpoint von GSAK aufbereitet
- Die Rotation der Bilder ist wieder abgeschaltet
- Es werden nur Bilder mit einer Kantenlänge > 80 Pixel bearbeitet
- Es werden nur durch GSAK heruntergeladene JPG-Dateien bearbeitet
- Neue Bilder werden dem Ausgabeverzeichnis hinzugefügt, für das löschen ist der Anwender verantwortlich
- Die Art der Bilder kann ausgewählt werden:
-- Cacheimages sind Bilder die auf der GC.com Seite liegen und Teil der Cachebeschreibung sind (Spoiler und Listing Bilder)
-- Logimages sind Bilder die mit Logs hochgeladen wurden, es werden nur die 10 aktuellsten Logs mit Bilder hochgeladen
-- WMS hier kann eine WMS-URL eingegeben werden. Damit können z.B. Luftbilder oder andere Karten zu den Caches hochgeladen werden. Die WMS URL für SRS=EPSG:4326 aufbereitet sein. Das Tool hängt an die eingegebene URL "&BBOX....." mit den passenden Koordinaten an. Die Kantenlänge der Kachel wird dem Dialog entnommen.

URL Beispiel für NRW

Code:
http://www.wms.nrw.de/geobasis/DOP?SERVICE=WMS&REQUEST=GetMap&LAYERS=0&FORMAT=image:jpeg&TRANSPARENT=TRUE&HEIGHT=300&WIDTH=300&SRS=EPSG:4326&STYLES=&VERSION=1.1.1

Achtung! Bitte die Lizenzbedingung für die WMS Datenquelle beachten und beim ersten mal mit einer kleineren Cacheanzahl testen. Falls die URL falsch ist werden zwar jpg Dateien erzeugt die aber nicht angezeigt werden können.

Damit hat das Tool einen für mich ausreichenden "Reifegrad" erreicht. Kommentare nehme ich gerne entgegen, ob ich die Zeit und Lust finde diese umzusetzen kann ich nicht versprechen.

Kurzanleitung:
- Zip Herunterladen und alle 3 Dateien in ein Verz. legen
- Die Spoiler2Garmin.Exe ausführen
- Eine GSAK Datenbank auswählen (macht nur Sinn wenn für diese DB Bilder heruntergeladen wurden)
- Ein Zielverzeichnis auswählen
- Dialog mit Parametern ausfüllen und OK klicken
-- gegebenenfalls Center in GSAK verschieben und Tool nochmals laufen lassen

Wie immer gilt: Die Nutzung erfolgt auf eigene Gefahr

Es gibt keinen Support, keine Funktionsgarantie.
 

Anhänge

  • Spoiler2Garmin4S.zip
    2,7 MB · Aufrufe: 30

sally04

Geocacher
sally04 schrieb:
Es gibt keinen Support, keine Funktionsgarantie.
Das Tool (mir gefällt es überaus gut) wurde mit AutoIIT geschrieben.

Code:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Outfile=Spoiler2Garmin.exe
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_UseX64=n
#AutoIt3Wrapper_Res_Comment=Achtung Testversion.
#AutoIt3Wrapper_Res_Description=Kopiert Bilder in eine Garmin kompatible Verz. Struktur
#AutoIt3Wrapper_Res_Fileversion=1.1.0.0
#AutoIt3Wrapper_Res_Language=1031
#AutoIt3Wrapper_Run_After=copy "%out%" "c:\temp\"
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#include <SQLite.au3>
; #include <SQLite.dll.au3>
#include <File.au3>
#include <FreeImage.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

AutoItSetOption("TrayAutoPause", 0)

Dim $debug = 1, $copiedImages = 0
Dim $aRow, $hQuery, $spoiler, $log

Global $dbfn, $outpath, $imgdb, $imgpath
Global $input1, $Input2, $Input3, $Button1, $Checkbox3, $Checkbox2, $Checkbox1, $Input4, $Input5, $Checkbox4


InitVars()
StartDatabase()
DisplayGUI()

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
			Doit()

	EndSwitch
WEnd

Func DoIt()
	Local $count = 0
	$sql = 'Select code,Latitude,longitude from caches order by distance asc Limit ' & GUICtrlRead($Input4) & ';'
	_SQLite_Query(-1, $sql, $hQuery)
	$max = Int(GUICtrlRead($Input4)) + 1
	ProgressOn("Spoiler2Garmin", "Fortschritt", "")

	While _SQLite_FetchData($hQuery, $aRow) = $SQLITE_OK

		$gc = $aRow[0]
		$dir = GUICtrlRead($Input2) & "\GeocachePhotos\" & StringRight($gc, 1) & "\" & StringLeft(StringRight($gc, 2), 1) & "\" & $gc & "\"
		MyConsoleWrite($debug, $count & ": " & $gc & " " & $dir & @CRLF)

		If GUICtrlRead($Checkbox3) = $GUI_CHECKED Then
			DoWMS($gc, $dir)
		EndIf
		If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
			DoCacheImage($gc, $dir);Details
		EndIf
		If GUICtrlRead($Checkbox2) = $GUI_CHECKED Then
			DoLogImage($gc, $dir)
		EndIf
		$count = $count + 1

		ProgressSet(100 * $count / $max, "(" & $gc & ")")
	WEnd
	ProgressOff()
EndFunc   ;==>DoIt

Func DoCacheImage($gc, $dir)
	Local $hQuery, $result

	$sql = 'select iguid,iname from Cacheimages where icode="' & $gc & '";'
	_SQLite_Query(-1, $sql, $hQuery)

	While _SQLite_FetchData($hQuery, $result) = $SQLITE_OK
		MyConsoleWrite($debug, "Cacheimg für: " & $gc & @CRLF)
		CopyPic1($gc, $result[0], ToFilename($result[1]), $dir, "Spoiler/")
	WEnd
	_SQLite_QueryFinalize($hQuery)
EndFunc   ;==>DoCacheImage

Func DoLogImage($gc, $dir)
	Local $hQuery, $result

	$sql = 'select iguid,iname from LogImages where icode="' & $gc & '" order by ilogid desc limit 10;'
	MyConsoleWrite($debug, "LOGimg SQl: " & $sql & @CRLF)
	_SQLite_Query(-1, $sql, $hQuery)

	While _SQLite_FetchData($hQuery, $result) = $SQLITE_OK
		MyConsoleWrite($debug, "Logimg für: " & $gc & @CRLF)
		CopyPic1($gc, $result[0], ToFilename($result[1]), $dir, "/")
	WEnd
	_SQLite_QueryFinalize($hQuery)
EndFunc   ;==>DoLogImage

Func CopyPic1($gc, $guid, $fn, $op, $td)
	Local $query, $result

	#cs
		$filelink  = Link zum Bild Bildes
		$gc = GC Code
		$fn = Filename aus Bilder Beschreibung)
		$op = output path
		$td = $target dir Spoiler oder nix
	#ce

	MyConsoleWrite($debug, "Copypic: " & $gc & " " & $guid & " " & $fn & " " & $op & @CRLF)

	Dim $query, $result

	$sql = 'select files.fname from files where files.link like "%' & $guid & '%";'

	MyConsoleWrite($debug, "sql: " & $sql & @CRLF)

	_SQLite_Query(-1, $sql, $query)

	If _SQLite_FetchData($query, $result) = $SQLITE_OK Then

		If FileExists($imgpath & "\" & $result[0]) Then

			$ofn = $op & $td & $fn & ".jpg"
			MyConsoleWrite($debug, "ofn: " & $ofn & @CRLF)
			FileCopy($imgpath & "\" & $result[0], $ofn, 8)
			$copiedImages = $copiedImages + 1
			$FIF = _FreeImage_GetFileTypeU($ofn)

			If $FIF = $FIF_UNKNOWN Then
				$FIF = _FreeImage_GetFIFFromFilenameU($ofn)
			EndIf

			$ImageHandle = _FreeImage_LoadU($FIF, $ofn)

			$w = _FreeImage_GetWidth($ImageHandle)
			$h = _FreeImage_GetHeight($ImageHandle)

			MyConsoleWrite($debug, "Image: w" & $w & " h " & $h & " FIF:" & $FIF & @CRLF)

			If ($h < 80) Or ($w < 80) Then
				MyConsoleWrite($debug, "Bild zu klein" & @CRLF)
				_FreeImage_Unload($ImageHandle)
				Return
			EndIf

			_FreeImage_Unload($ImageHandle)
		EndIf
	EndIf
	_SQLite_QueryFinalize($query)
EndFunc   ;==>CopyPic1



Func DoWMS($gc, $dir)

	Local $hQuery, $aRow
	DirCreate($dir)
	$sql = 'Select code,Latitude,longitude from caches where code="' & $gc & '";'
	_SQLite_Query(-1, $sql, $hQuery)

	If _SQLite_FetchData($hQuery, $aRow) = $SQLITE_OK Then
		$WMSURl = GUICtrlRead($Input3)

		$WMSkachel = GUICtrlRead($Input5) / 2000

		$dlon = $WMSkachel / (111.3 * Cos($aRow[1] * 3.1415 / 180))
		$dlat = $WMSkachel / 111.3

		$url = $WMSURl & "&BBOX=" & $aRow[2] - $dlon & "," & $aRow[1] - $dlat & "," & $aRow[2] + $dlon & "," & $aRow[1] + $dlat
		MyConsoleWrite($debug, $url & @CRLF)
		InetGet($url, $dir & "Map_" & $gc & ".jpg")
		If GUICtrlRead($Checkbox4) = $GUI_CHECKED Then
			DoWMSWaypoint($gc, $dir)
		EndIf
	EndIf
	_SQLite_QueryFinalize($hQuery)
EndFunc   ;==>DoWMS

Func DoWMSWaypoint($gc, $dir)

	Local $hQuery, $aRow
	DirCreate($dir)

	$sql = 'Select ccode,cLat,clon,cName from Waypoints where (cparent Like "' & $gc & '")  and (clat Not Like "0.0") and (clon Not Like "0.0") and (cType!="Parking Area");'
	_SQLite_Query(-1, $sql, $hQuery)

	If _SQLite_FetchData($hQuery, $aRow) = $SQLITE_OK Then
		$WMSURl = GUICtrlRead($Input3)
		;Details
		$WMSkachel = GUICtrlRead($Input5) / 2000

		$dlon = $WMSkachel / (111.3 * Cos($aRow[1] * 3.1415 / 180))
		$dlat = $WMSkachel / 111.3

		$url = $WMSURl & "&BBOX=" & $aRow[2] - $dlon & "," & $aRow[1] - $dlat & "," & $aRow[2] + $dlon & "," & $aRow[1] + $dlat
		MyConsoleWrite($debug, "Waypoint " & $aRow[0] & @CRLF)
		InetGet($url, $dir & "Map_" & ToFilename($aRow[3]) & "_" & $aRow[0] & ".jpg")
	EndIf
	_SQLite_QueryFinalize($hQuery)
EndFunc   ;==>DoWMSWaypoint


Func DisplayGUI()
	#Region ### START Koda GUI section ### Form=c:\users\xxxx\appdata\roaming\gsak8\spoiler2garmin.kxf
	$Form1_1 = GUICreate("Spoiler2Garmin", 612, 319, 192, 124)
	$input1 = GUICtrlCreateInput("", 88, 8, 513, 21, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
	$Label1 = GUICtrlCreateLabel("Datenbank", 16, 8, 57, 17)
	$Input2 = GUICtrlCreateInput("", 88, 32, 513, 21, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
	$Label2 = GUICtrlCreateLabel("Ausgabeverz.", 16, 32, 69, 17)
	$Checkbox1 = GUICtrlCreateCheckbox("Cachebilder", 16, 112, 97, 17)
	$Checkbox2 = GUICtrlCreateCheckbox("Logbilder", 16, 144, 97, 17)
	$Checkbox3 = GUICtrlCreateCheckbox("WMS Bilder", 16, 176, 97, 17)
	$Input3 = GUICtrlCreateInput("", 8, 256, 585, 21)
	GUICtrlSetTip(-1, "Eine WMS Url ohne den BBOX Parameter, der wird vom Tool hinzugefügt")
	$Button1 = GUICtrlCreateButton("Los", 456, 280, 137, 25, $WS_GROUP)
	$Label4 = GUICtrlCreateLabel("Anzahl der Caches", 16, 64, 93, 17)
	$Input4 = GUICtrlCreateInput("25", 128, 64, 65, 21)
	GUICtrlSetTip(-1, "Caches rund um den Centerpoint")
	$Input5 = GUICtrlCreateInput("100", 168, 224, 81, 21)
	GUICtrlSetTip(-1, "Kantenlänge der WMS Kachel in Meter")
	$Label5 = GUICtrlCreateLabel("m", 264, 232, 12, 17)
	$Label3 = GUICtrlCreateLabel("WMS-URL", 8, 224, 56, 17)
	$Checkbox4 = GUICtrlCreateCheckbox("Waypoint", 112, 176, 81, 25)
	GUICtrlSetTip(-1, "Lädt auch die Waypoints (außer Parking)")

	GUICtrlSetData($input1, $dbfn)
	GUICtrlSetData($Input2, $outpath)
	GUICtrlSetData($Input3, "http://www.wms.nrw.de/geobasis/DOP?SERVICE=WMS&REQUEST=GetMap&LAYERS=0&FORMAT=image/jpeg&TRANSPARENT=false&HEIGHT=400&WIDTH=400&SRS=EPSG:4326&STYLES=&VERSION=1.1.1")

	GUISetState(@SW_SHOW)
EndFunc   ;==>DisplayGUI

Func InitVars()
	Dim $szDrive, $szDir, $szFName, $szExt, $ret

	If @Compiled Then
		$ret = _FreeImage_LoadDLL(@ScriptDir & "\FreeImage.dll")
	Else
		$ret = _FreeImage_LoadDLL("C:\Program Files (x86)\AutoIt3\Include\FreeImage.dll")
	EndIf

	If $ret Then
		_FreeImage_Initialise()
	Else
		MsgBox(1, "Fehler", "Freeimage.dll nicht gefunden.")
		Exit
	EndIf

	If @Compiled Then
		_SQLite_Startup(@ScriptDir & "\sqlite3.dll")
	Else
		_SQLite_Startup()
	EndIf

	If @error Then
		MsgBox(1, "Fehler", "SQLITE3.dll nicht gefunden")
		Exit
	EndIf

	$dbfn = FileOpenDialog("Open GSAK-DB", @AppDataDir & "Roaming\gsak\Data", "GSAK-DB (*.db3)", 1, "sqlite.db3")

	If Not FileExists($dbfn) Then
		MsgBox(1, "Fehler", "DB nicht gefunden")
		Exit
	EndIf

	$outpath = FileSelectFolder("Ausgabeverzeichnis", "", 1, "Garmin")

	MyConsoleWrite($debug, "Outpath " & $outpath & @CRLF)

	If Not FileExists($outpath) Then
		MsgBox(1, "Fehler", "Ausgabeverzeichnis nicht gefunden")
		Exit
	EndIf

	_PathSplit($dbfn, $szDrive, $szDir, $szFName, $szExt)

	$imgdb = $szDrive & $szDir & "..\GrabbedImages\files.db3"

	If FileExists($imgdb) Then
		$imgpath = $szDrive & $szDir & "..\GrabbedImages\"
	Else
		MsgBox(1, "Fehler", "DB mit heruntergeladenen Bildern nicht gefunden")
	EndIf
EndFunc   ;==>InitVars

Func StartDatabase()
	#cs
		/* Attach 'C:\Users\xxxx\AppData\Roaming\gsak8\data\GrabbedImages\files.db3' AS images; */
		create temp Table if not exists Spoi2Gar (Code text,long real,lat real ,name text,guid as text)
		create temp Table if not exists Spoi2Gar2Do (Code text)
		select code, longitude,latitude from caches order by distance limit 100;
		create view mySpoi as Select code,longitude,latitude,guid from Caches  order by distance limit 100;
	#ce

	$db = _SQLite_Open($dbfn)
	If @error Then
		MsgBox(1, "Fehler", "DB kann nicht geöffnet werden")
		Exit
	EndIf
	MyConsoleWrite($debug, "imgdb: " & $imgdb & @CRLF)
	If Not _SQLite_Exec($db, "Attach '" & $imgdb & "' AS images;") = $SQLITE_OK Then
		MsgBox(1, "Fehler", "Fehler bei Attach")
		Exit
	EndIf
	#cs
		If Not _SQLite_Exec($db, "create view mySpoi as Select code,longitude,latitude,guid from Caches  order by distance limit 100") = $SQLITE_OK Then
		MsgBox(1, "Fehler", "Fehler bei Create View")
		Exit
		EndIf
	#ce
EndFunc   ;==>StartDatabase

Func MyConsoleWrite($d, $s)
	If $d Then
		ConsoleWrite($s)
	EndIf
EndFunc   ;==>MyConsoleWrite

Func ToFilename($str)
	$ret = StringLeft(StringStripWS($str, 8), 40)
	For $i = 1 To StringLen($ret)
		$c = StringMid($ret, $i, 1)

		If Not StringIsAlNum($c) Then
			Switch $c
				Case "!", "?", "-", "+"
					; Hier nix
				Case Else
					$ret = StringReplace($ret, $i, "@", 1)
			EndSwitch
		EndIf
	Next

	$ret = StringReplace($ret, "@", "")
	If StringLen($ret) < 1 Then
		$ret = "_"
	EndIf
	MyConsoleWrite($debug, "ToFilename: " & $ret & " =>  " & $str & @CRLF)
	Return StringLeft($ret, 32)
EndFunc   ;==>ToFilename

Quick and dirty :D
 

barsoi

Geocacher
hallo,

ein wirkklich schönes tool, wenn es denn geht. Da es keinen support gibt, nur eine kurze frage - hat es ein log? da könnte man selbst mal nachsehen, warun es plötzlich abbricht.

Danke Stephan
 

sally04

Geocacher
Eastpak1984 schrieb:
Sieht man denn, wo es abbricht?

Im Anhang ist eine Exe mit einem Debug Fenster, man sieht also ungefähr was passiert.

Diese Exe muss in das Verz. mit den beiden DLLs kopiert werden.

Ich glaube das hilft aber keinem Anwender weiter. :???:
 

Anhänge

  • Spoiler2Garmin-debug.zip
    394,8 KB · Aufrufe: 10
Oben