Hallo, ich lese eine Waage über die serielle Schnittstelle aus. Die Ergebnisstrings schauen etwa so aus: + 443 g + 5 g + 12111 g Welche Funktionen kann ich Bascom nutzen, damit ich nachher einen String wie: 443 5 12111 bekomme ?? Diesen dann umwandeln in eine Zahl, mit der ich rechnen kann ist einfach: zahl = val(string) Könnt ihr mir einen Tip geben ?? Vielen Dank !! Nico
Ich könnte ja den Urstring zeichenweise in ein Array splitten. Dann habe ich einzelne Bytes, die ich untersuchen kann, ob sie ein Leerzeichen sind oder nicht. Aus allen, die kein Leerzeichen sind, baue ich mir meinen String wieder zusammen und wandle ihn in eine Zahl. Hmmm, recht aufwändig, oder .... ??? Geht das einfacher ?? Viele Grüße
In C würde man schreiben: *(strchr(string, 'g')-1) = 0; Aber bräuchte man eigentlich nicht, da zahl = atoi(string)); sowieso bei einem nicht Zifferzeichen abbricht. Peter
Hallo, wenn Du von UART zeichenweise liest und das Format immer so ist, gleich beim Einlesen "+" "Leerzeichen" und "g" gleich wegwerfen und garnicht in den String übernehmen. Wie das in BasCom geht weiß ich nicht. Ansonsten Basic-typisch: $laenge = len($string)-2) ; ohne erstes und letztes Zeichen $string = mid($string,1,laenge) $string = trim($string) ; entfernt Space, CR, LF usw. Was davon BasCom kann, weiß ich nicht... Gruß aus Berlin Michael
2 Zeilen: mit MID schneidest Du das erste und letzte Zeichen ab (das erste kann evtl. auch bleiben, hab ich nicht getestet) mit VAL in einen numerischen Typ umwandeln
Vielen Dank für eure Antworten !!! Ich habe nun mit den Bascom-Funktionen Left und Right den String vorne und hinten beschnitten. Die funktion zahl = val(string) wandelt den String in eine Zahl.... Läuft !!! :-) Nico
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.