GPS Stream splitten ... funktioniert nicht wie ich es mir denke bitte hilfe!


iMarcG5

Mitglied
guten Tag erstmal... Ok es ist (!)feiertag(!).. trotzdem wollt ich bissl was machen :)
nun denn jetyt zu meinem Problem...
ich les mit .NET1.1 einen virtuellen COMPort ein!.. benutze dazu die Win API! also
kommt das, was die GPS/Maus sendet als Stream (als w[rde man es in eine Datei schreiben wollen)... jetzt kommts...
Yeilen vom GPs sehen ungef'hr so aus:

$GPRMC,133626,A,5336.432,N,00957.436,E,000.0,035.0,040897,000.3,W*6C
$GPGLL,5336.432,N,00957.436,E,133627,A*24

und noch viele Zeilen mehr
ich wollte eigentlich mit der Split funktion erstmal trennen ...
bei mir kommt eigentlich sowas rein :

$GPRMC,133626,A,5336.432,N,00957.436,E,000.0,035.0,040897,000.3,W*6C <CR><LF>
$GPGLL,5336.432,N,00957.436,E,133627,A*24 <CR><LF>

also dachte ich , l'sst es sich ja wundersch;n an dem <CR><LF> trennen .. natuerlich erstmal replacen sonst gehts net (jetzt net lachen... sieht kompliyiert aus, wollte aber nicht anders funktionieren :p )
PS: s ist der stream, den ich [ber den Konstruktor bekomme
Code:
 			string ss = s.Replace("<CR>" , "\n"); // dass es auch in meiner Textbox richtig angezeigt wird
    			string sss = ss.Replace("<LF>" , ";");
    			string [] ssss = sss.Split(';');
so... jetzt m[sste ja eigentlich jede neue Zeile in ssss ueber den index aufgerufen werden koennen
also hier im Beispiel:
ssss[0] waere --> $GPRMC,133626,A,5336.432,N,00957.436,E,000.0,035.0,040897,000.3,W*6C
ssss[1] waere -->$GPGLL,5336.432,N,00957.436,E,133627,A*24

u.s.w. .. das geht aber net... liegt das am Stream oder woran__... ich verstehs net richtig!
waere nett, wenn ihr mir helfen koenntet, byw. anstoesse wie ihr es vielleicht eher machen koenntet
ich will eben schoene uabersichtliche strings haben, damit ich sie speater in der Split - Klasse trennen kann also nach den Kommas und so!
das sollte ja dann kein grosses Problem mehr sein aber dass ich die einyelnen Zeilen schoen als einyelne Strings hab, auf die ich zugreifen kann...

danke auf jeden Fall fuer die Hilfe;)
 

hpvw

Erfahrenes Mitglied
Warum trennst Du nicht bei dem Dollar?
Nach dem NMEA-Protokoll ist das die Einleitung eines neuen Wertes. Einen Zeilenumbruch muss es meines Wissens nicht zwingend geben.
Dann würde ich denn String "trimmen". Ich kenne .NET nicht, aber eine Funktion, wie z.B. trim in PHP, wird es dort sicher auch geben.

Gruß hpvw
 

iMarcG5

Mitglied
das Problem ist an sich nicht , dass ich es nicht getrennt bekomme.. wo ich es trenne ist auch eher egal... es geht nur darum, dass eigentlich bei der "split" - funtkion nach jedem Splitten, das was vor dem trennzeichen steht in ein array geschrieben wird und das danach auch in dassalbe, mit naechstem array eintrag!
z.B.
string la = a.s.d.f.g;
string [] lala = la.split('.')
also ist lala[1] --> s
lala[3] --> f

u.s.w.

aber mit dem stream scheint es nicht zu gehen!
er macht immer nur lala[0] voll... lala[1 /2/3/4...] sind leer
das ist mein Problem!

m;glicherweise gibt es eine andere art und weise! aber die kenn ich leider net!

nach deinem trim werd ich mal schauen!... hab aber nix davon gehoert!.. trotzdem Danke!
 

iMarcG5

Mitglied
sorry... habs fälschlicherweise hier statt in C#.net gepostet - :rolleyes: - I´m sorry...
falls ihr dennoich einfälle habt... antwortet einfach..DankE

...sorry nochmal!