PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mehrere bestimmte Zeichen aus einem String auslesen



mat-sche
19.03.2011, 14:32
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:


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

for_ro
19.03.2011, 16:41
Hallo MAT,
kannst du nicht die Funktion

count = Split(source, array, search)

nehmen, die ist genau dafür gemacht.

mat-sche
19.03.2011, 18:25
Hallo for_ro,

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

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:



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