split bei Bascom oder andere Sprache?

Gast #560211
Lesenswert?

Gibt es eine Funktion mit der man in Bascom einen Sting an einem 
bestimmten trennzeichen teilen kann so wie dies auch unter VB geht. Ich 
will einen über RS232 übertragenen String am = trennen und dann jeweils 
den teil vor und nach diesem Zeichen in meine µC weiter verarbeiten gibt 
es da eine Möglichkeit evtl. auch in C (davon habe ich aber noch keinen 
plan :-( )

Mit freundlichen Grüßen Christian
Gast #560288
Lesenswert?

Irgendwie will bascom nicht so wie ich will:

Ich will einen String über RS232 an den Controller senden diesen String 
dann Splitten  und die beiden teile auswerten wenn ich die Variable aber 
vom Typ BYTE verwende kann ich keine String Funktionen anwenden (LEFT 
RIGHT MID LEN) POS scheint es auch nicht in Bascom zugeben. Vielleicht 
hat noch einen ein paar Ideen.
Gast #560325
Lesenswert?

>LEFT RIGHT MID LEN) POS scheint es auch nicht in Bascom zugeben

Das trifft nicht zu: Es gibt Left, Mid, Right, Instr (Instring), Len für 
die Länge eines Strings. Du kannst auch Trim bzw. Rtrim prüfen.
Das setzt voraus, dass Du Stringvariable benutzt. Nach dem Teilen musst 
Du dann ggf. eine Typwandlung vornehmen. Hierfür gibt es Val und CHR und 
Str, je nach Wandlungsrichtung (hier VAl).
Gast #560432
Lesenswert?

Ich denke mal, daß es mit einer 'Byte' Variablen nicht klappt. Du mußt 
eine 'String' Variable definieren und die Anzahl der maximalen Zeichen 
mit angeben:
dim variablenname as string(5), wobei die '5' für vier!!!! maximale 
Zeichen steht.
Dann liest Du mit 'Input' den String ein. Wenn am PC ein 'CR' gesendet 
wird, ist für Bascom die eingabe zuende.
Dann kannst Du den String zerlegen. Schau mal dazu in der Bascomhilfe 
nach 'MID'.
Aber vermutlich war der falsche Variablentyp das Problem.
Good luck,
:-) Johannes
#560623
Lesenswert?

jojansen wrote:
>
> dim variablenname as string(5), wobei die '5' für vier!!!! maximale
> Zeichen steht.

Kleine Korrektur: In Bascom steht die 5 dann für 5 Zeichen, nicht für 4 
wie in C. Intern werden vom Compiler dann tatsächlich 6 Byte reserviert.

Gruß

Rolf
Gast #561091
Lesenswert?

> ist noch das Problem mit Byte und Funktionen für String

Alle Elemente wurden in den Beiträgen bereits genannt:
- Stringvariable definieren, z.B.: DIM s AS STRING * 10
- String vom PC mit input in MC einlesen: Input s
- mit irgendeiner der vielen Möglichkeiten in Teilstrings zerlegen
- Wenn jetzt z.B. der Teilstring teil1="145" ist, dann wandeltst Du ihn 
in eine Bytevariable, z.B. wert, um mit: wert=VAL(teil1)
- wert hast Du vorher natürlich definiert mit DIM wert AS Byte.

Ist ziemlich ähnlich wie in VB, das ist ja der Vorteil von BASIC, auch 
wenn Details in der Syntax (leider) unterschiedlich sein können.

So, jetzt ran ...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren