Entfernung zweier PLZ in km berechnen

  • VB.NET

Es gibt 51 Antworten in diesem Thema. Der letzte Beitrag () ist von toeller.

    Ich habe jetzt über Umwege die Zahlen rausgeholt (nach dem ersten Match, den ich bis Minuten gemacht habe, habe ich Substring ab "km" genommen und danach noch mal neuen Pattern, der gleiche nur ab "\D+" suchen lassen). Aber verstanden habe ich es nicht wirklich, irgendwie ist es total unlogisch.

    Ich habe einen Ausdruck: "altroute-info"> <span>262 km</span>, <span>2 Stunden 33 Minuten", wie kann ich davon einfach alle Zahlen rausholen?
    Ich dachte "(\d+)" würde schon die Zahlen in Gruppen rausholen, der Logik nach, aber das tut es nicht bzw. nur die erste, und auch nur wenn "\D+" davor steht. Warum, verstehe ich leider nicht.

    Deine Exe habe ich runtergeladen, EDR, aber da verstehe ich überhaupt nichts. :(

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „sonne75“ ()

    @sonne75: Und was nutzt @sonne75: diese Information?
    Poste einen Link zu diesem Post. :D
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo Zusammen,

    wir haben bis Dato mit folgendem Code die km usw. aus Googlemaps auslesen können.

    VB.NET-Quellcode

    1. Public Function GetRouteInfo(ByVal Startadresse As String, ByVal Zieladresse As String, ByRef Km As Double, ByRef Hours As Integer, ByRef Minutes As Integer) As Boolean
    2. 'ermittelt die Straßenkilometer zwischen Startadresse und Zieladresse mit Google-Maps
    3. 'diese müssen mit Postleitzahl und LänderAbkürzung oder
    4. 'mit Postleitzahl und Ort eingegeben werden, damit sie eindeutig sind
    5. Dim Result As Boolean = False ' Berechnungserfolg: True, wenn Ergebnis abgerufen werden konnte
    6. If Not Startadresse = Zieladresse Then
    7. Dim response As String = (New WebClient).DownloadString(String.Format("http://maps.google.de/maps?f=d&hl=de&saddr={0}&daddr={1}&output=html", Startadresse, Zieladresse))
    8. ' innerhalb des Response-Wertes nach folgendem String suchen
    9. Dim pattern As String = "altroute-info\D+(\d+).+?Minuten"
    10. Dim match = Regex.Match(response, pattern)
    11. If match.Success Then
    12. ' Match.Value enthält bei erfolgreicher Suche einen Text mit mehreren Zahlen, diese müssen durch erneute Suche aufgeteilt werden.
    13. Dim matches As MatchCollection = Regex.Matches(match.Value, "[-+]?[0-9]*\,?[0-9]+")
    14. Select Case matches.Count
    15. Case 2
    16. Km = Double.Parse(matches(0).Value)
    17. Hours = 0
    18. Minutes = Integer.Parse(matches(1).Value)
    19. Result = True
    20. Case 3
    21. Km = Double.Parse(matches(0).Value)
    22. Hours = Integer.Parse(matches(1).Value)
    23. Minutes = Integer.Parse(matches(2).Value)
    24. Result = True
    25. Case Else
    26. Km = 0.0
    27. Hours = 0
    28. Minutes = 0
    29. End Select
    30. End If
    31. End If
    32. Return Result
    33. End Function


    Leider funktioniert es plötzlich nicht mehr und bekomme es leider nicht heraus woran es liegt.

    Für eine Unterstützung wäre ich sehr dankbar.

    toeller schrieb:

    auslesen können
    Debugge Deinen Code, arbeite ihn zeilenweise ab, überprüfe nachg jedem Schritt den Inhalt der Variablen.
    Stell fest, wo genau es klemmt.
    Gugst Du hier.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    toeller schrieb:

    ziemlich viel
    Google hat sein Format geändert, passe Deine Anwendung entsprechend an. Übrigens ist das ein HTML-Text, behandle ihn so.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!