Forum: Mikrocontroller und Digitale Elektronik Bascom -- String beschneiden


von Nico Fr. (Gast)


Lesenswert?

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

von Rolf I. (for_ro)


Lesenswert?

Schau dir mal LEFT, MID und RIGHT in der Hilfe an.

Gruß

Rolf

von Nico Fr. (Gast)


Lesenswert?

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

von Peter D. (peda)


Lesenswert?

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

von Michael U. (Gast)


Lesenswert?

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


von Carsten P. (papa_of_t)


Lesenswert?

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

von Nico Fr. (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.