- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 3 von 3

Thema: mehrere bestimmte Zeichen aus einem String auslesen

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    25.03.2006
    Ort
    Hinsdorf
    Alter
    50
    Beiträge
    381

    mehrere bestimmte Zeichen aus einem String auslesen

    Anzeige

    Praxistest und DIY Projekte
    Servus!

    ich habe einen GPS-String von 67 Zeichen, die einzelnen Größen werden durch ein Komma getrennt. Jetzt möchte ich in diesem String den Platz der Kommas zählen, um bei der Auswertung diesens an die richtigen Daten zu kommen.

    folgendes habe ich probiert, was aber leider nicht klappt:
    Code:
    If Nmea_name = "GPRMC" Then
           For I = 1 To 12
                  Komma_pos(i) = Instr(i , A1 , Komma)
           Next I
        For I = 1 To 12
        Print " komma" ; Komma_pos(i)
        Next I
    leider wird über "instr" mir nicht jede Position des Kommas angegeben.

    Irgendwelche Vorschläge oder einen anderen Weg um die Kommas zu zählen?
    Das wäre schön!

    Danke & Gruß MAT

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Hallo MAT,
    kannst du nicht die Funktion

    count = Split(source, array, search)

    nehmen, die ist genau dafür gemacht.

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    25.03.2006
    Ort
    Hinsdorf
    Alter
    50
    Beiträge
    381
    Hallo for_ro,

    danke für Deine Antwort, habe inzwischen schon eine Lösung gefunden.

    Der String sieht so aus:
    GPRMC,191410,A,4735.5634,N,00739.3538,E,0.0,0.0,18 1102,0.4,E,A*19

    und ich muss bestimmte Zahlen nach dem Komma aus dem String ziehen, was ich wie folgt gemacht habe:

    Code:
     If Nmea_name = "GPRMC" Then                                 'beginnt der String mit GPRMC
           For I = 1 To Str_count_3                     ' Str_count3 zählt die eingelesenen
                                          'Zeichen über Softuart, der am INT0-Pin liegt per Interrrupt ein
                  If Nmea_rec(i) = "," Then 'Nmea_rec(i) ist ein Bytearray overlaid über
                                                         'Nmea_name - String
                  I = I + 1 'für Zeichen hinter dem Komma
                  Incr B
                  Komma_pos(b) = I
                  End If
           Next
        B = 0
        For I = 1 To 12
        Print " komma" ; Komma_pos(i)
        Next
           Hour_ = Komma_pos(1)
           Min_ = Komma_pos(1) + 2
           Sec_ = Komma_pos(1) + 4
           Nmea_time = Mid(a1 , Hour_ , 2) + ":" + Mid(a1 , Min_ , 2) + ":" + Mid(a1 , Sec_ , 2)
    Jetzt habe ich die Kommaanzahl und die Stelle an denen sie stehen und kann somit jede beliebige Stelle eines Strings mir herausziehen.

    Danke & Gruß
    MAT

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test