OK, das Erinnerungsvermögen nimmt manchmal unerwartet eine kleine Auszeit - aber nicht wirklich dramatisch.
Du wirst noch manchmal an meine Worte denken!
OK, das Erinnerungsvermögen nimmt manchmal unerwartet eine kleine Auszeit - aber nicht wirklich dramatisch.
Du wirst noch manchmal an meine Worte denken!
Vielen Dank für die ausführliche erläuterung.
Dachte meine Version wäre eine stümperhafte.
Bin jetzt aber ganz Stolz.
Hab Stunden damit verbracht, mit den Befehlszeilenumbrüchen.
Jetzt weiß ich was ich immer vergessen habe es waren die " am Ende jeder Zeile. ( _ ) das wusste ich!
Zitat
Ich hatte es so gemacht, geht auch, aber elend langsam,
Hab es mit Stringsplit auseinander genommen und Zeilenweise in Excel eingefügt.
Deine Funtionen sind der Hammer (weiß zwar nicht was das ganze Zeug bedeutet).
Im Array fluschtschen sie in null Komma nix durch.
Arbeite erst seit 2 Monaten mit Arrays.
Nochmals Vielen Vielen Dank
ZitatJe älter ich werde, desto mehr will ich noch (dazu-) lernen
Glaube mir ich spreche aus Erfahrung:
Du musst mindestens 40 % mehr dazu lernen.
Denn durch das alter vergisst du wieder 60 % und es wird immer mehr.
Noch mal eine Frage an die Expertenrunde?
Wie baut man so eine Url zusammen?
Ich hatte es so gemacht, geht auch, aber elend langsam, im Verhältnis von dem Script von AspirinJunkie
Local $Geo = "50.77677,7.08529:50.72258,7.37596"
Local $MS = 80
Global CONST $SAPIKEY_TOMTOM = "..."
Global $url = ("https://api.tomtom.com/routing/1/calculateRoute/" & $Geo & "/json?maxAlternatives=3&language=de-DE§ionType=traffic&routeType=fastest&traffic=true&avoid=unpavedRoads&travelMode=car&vehicleMaxSpeed=" & $MS & "&key=********")
#include "JSON_1.au3"
#include <Array.au3>
; ANPASSEN!
Global CONST $SAPIKEY_TOMTOM = "..."
; Koordinaten zu Adresse abfragen:
$aKoordinaten = _tomtom_geocodeAdress("Wilnsdorf Hohe Roth 6")
If @error Then ; Fehler
MsgBox(48, "Fehler", "@error: " & @error & @CRLF & "@extended: " & @extended)
Else ; Ergebnis anzeigen
_ArrayDisplay($aKoordinaten)
EndIf
; gibt die Koordinaten einer Adresse mit Hilfe der TomTom Geocode-Api zurück
Func _tomtom_geocodeAdress($sAdresse, $sApiKey = $SAPIKEY_TOMTOM)
; URL zusammenbauen
Local $sURL = StringFormat('https://api.tomtom.com/search/2/geocode/%s.json?key=%s', _URIEncode($sAdresse), $sApiKey)
; Abfrage senden und Ergebnis in Variable speichern:
Local $sJSONReturn = InetRead($sURL)
If @error Then Return SetError(1, @error, Null)
$sJSONReturn = BinaryToString($sJSONReturn)
; JSON-String parsen:
Local $oJSON = Json_Decode($sJSONReturn)
; Lat und Lon aus Ergebnis extrahieren
Local $fLat = Json_Get($oJSON, ".results[0].position.lat")
If @error Then Return SetError(3, @error, Null)
Local $fLon = Json_Get($oJSON, ".results[0].position.lon")
If @error Then Return SetError(4, @error, Null)
Local $aRet[2] = [ $fLat, $fLon]
Return $aRet
EndFunc
; Funktion um Adresse innerhalb der URI zu kodieren:
Func _URIEncode($sData)
; Prog@ndy
Local $aData = StringSplit(BinaryToString(StringToBinary($sData, 4), 1), "")
Local $nChar
$sData = ""
For $i = 1 To $aData[0]
$nChar = Asc($aData[$i])
Switch $nChar
Case 45, 46, 48 To 57, 65 To 90, 95, 97 To 122, 126
$sData &= $aData[$i]
Case 32
$sData &= "+"
Case Else
$sData &= "%" & Hex($nChar, 2)
EndSwitch
Next
Return $sData
EndFunc ;==>_URIEncode
Alles anzeigen
Viele Grüße vom alten Mann
der schon wieder die Hälfte vergessen hat
Windi
Hi @AspirinJunkie,
Du bist echt der größte, hab gar nicht gewußt was du damit meinst.
Es läuft alles perfekt.
War ja sooo froh das du mir geholfen hast.
Hab mal wieder gemerkt, dass ich noch sehr viel lernen muss.
Aber auf Grund meines alters, wird dass in diesem Leben nichts mehr.
Danke nochmal
auch an die anderen.
Gruß Windi
Die Json vom Webdriver kann man nicht umbennen, die andere schon!
Für das Script brauch ich den Webdriver nicht.
Aber wenn die Geokodierung fertig ist muss ich mit dem Webdriver die Datei mit Mydrive an das Navi senden.
Dazu brauch ich ihn, um die iframes zu steuern.
Was passiert denn, wenn Du das Skript von AspirinJunkie (Beitrag #20) ohne Änderungen (außer deinem Key) bei Dir laufen lässt ?
Wie ich geschrieben habe mit der einen Json geht es mit der anderen nicht.
und einmal kommt Fehlermeldung 1 und bei der anderen kommt beim Webdriver Meldung 2.
Der Webdriver verwendet eine andere JSON-UDF
Das habe ich ja festgestellt!
und deshalb habe ich mich gemeldet.
Meine Frage?
Gibt es vielleicht noch eine andere Version der Json für beide.
Danke für die Rückmeldung.
Es ist nur seltsam das der Webdrv mit der einen Json läuft und mit der anderen nicht.
Und beim Script ist es umgekehrt.
Deshalb vermute ich es muss an der Json liegen.
Hi ich muss mich nochmal melden!
Ich habe festgestellt dass ich mit der Json_1.au3 nicht das Script von AspirinJunkie ausführen kann und
mit der Jason_2 nicht den Webdriver.
Hier die Fehlermeldungen:
Was mache ich falsch?
Na super,
bin halt Anfänger hab gedacht das muss alles über ein Browser laufen.
Vielen Dank für deine Mühe und noch eine schöne Adventszeit.
Gruß Windi
Ok Danke,
bin dabei.
Versuche es in den Webdriver von Dan einzuarbeiten.
Ich glaube, ich muß mal alles neu updaten.
Hatte festgestellt, dass der webdriver nicht mehr lief wenn die Datei
JSON_Dictionary.au3 eingebunden ist.
Wie ist das eigentlich, laufen die alten Sripte noch nach dem Update, oder muss da was angepasst werden.
OK Danke!
Edit: heute
Jetzt funktioniert es.
Danke!
Werde mich morgen mal drüber machen.
Euch allen morgen einen schönen 2 Advent
Gruß Windi
Hab die neue Version runtergeladen.
Jetzt kommt der Fehler:
Danke für deine Mühe, kriege folgende Fehlermeldung.
Die Url ist von TomTom und der Key kann ich nicht veröffentlichen.
>"C:\Program Files (x86)\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Users\xx2\Desktop\Regex test.au3"
"C:\Users\xx2\Desktop\Regex test.au3" (36) : ==> Unknown function name.:
$oResult = _JSON_Parse($sJSONReturn)
$oResult = ^ ERROR
>Exit code: 1 Time: 0.3565
Ich hatte es mit StringinStr probiert aber es ist verdammt langsam.
Da sind zum Teil ein paar Tauusend zeichen drin.
Deshalb kam ich auf die idee mit Regex.
Hier die Rohdaten:
{"summary":{"query":"wilnsdorf hohe roth 6","queryType":"NON_NEAR","queryTime":149,"numResults":1,"offset":0,"totalResults":7314,"fuzzyLevel":2},"results":[{"type":"Point Address","id":"DE/PAD/p0/21286756","score":7.0448002815,"matchConfidence":{"score":0.9350328916967534},"address":{"streetNumber":"6","streetName":"Hoheroth","municipality":"Wilnsdorf","countrySecondarySubdivision":"Siegen-Wittgenstein","countrySubdivision":"Nordrhein-Westfalen","postalCode":"57234","countryCode":"DE","country":"Deutschland","countryCodeISO3":"DEU","freeformAddress":"Hoheroth 6, 57234 Wilnsdorf","localName":"Wilnsdorf"},"position":{"lat":50.82027,"lon":8.11352},"viewport":{"topLeftPoint":{"lat":50.82117,"lon":8.1121},"btmRightPoint":{"lat":50.81937,"lon":8.11494}},"entryPoints":[{"type":"main","position":{"lat":50.82024,"lon":8.11361}}]}]}
Diese Werte bräuchte ich.
mit dem Ansprechen von Arrays habe ich keine Probleme.
Daher meine Frage ob man es noch enger begrenzen kann.
Hi Andy,
danke für die Rückmeldung!
Ich habe die Daten im Array richtig.
Kann man die noch ein bischen mehr eingrenzen.
Hier das Original Array!
Ich brauch davon Row 4 und 5
Row 1 hat manchmal die gleiche Größe an Ziffern.
Und Row 5 ist manchmal 2 Stellig.
Mir würde schon helfen wenn Row 0, Row 2 und Row 3 draus wären.
Ist das überhaupt möglich?
Gruß Windi