mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Bascom -- String beschneiden


Autor: Nico Fr. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rolf Im forum (for_ro)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau dir mal LEFT, MID und RIGHT in der Hilfe an.

Gruß

Rolf

Autor: Nico Fr. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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


Autor: Carsten Pietsch (papa_of_t)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Nico Fr. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.