PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] String in mehrere Substrings zerlegen



bnitram
17.07.2012, 10:13
Hallo Forum,
Ich möchte einen String bestehend aus 4Ziffern (0 oder 1) in 4 Substrings zerlegen. Das heißt ich brauche später jede einzelne Ziffer als einzelne Variable. Wie zerteile ich meinen String??
Bisher brauchte ich das nicht aber wie geht das am besten in Bascom AVR??

Mfg
bnitram

for_ro
17.07.2012, 11:54
Hallo Martin,
wenn du unbedingt bei Strings bleiben willst, dann schau dir mal die Funktion STR2DIGITS() an.

bnitram
17.07.2012, 12:21
Danke schonmal,
wie würdest du bzw. wie kann man das denn sonst machen??

Mfg
bnitram

bnitram
17.07.2012, 15:23
Hallo nochmal,
habe noch ne runde gesucht und habe noch etwas gefunden. Dem "MID" Befehl: http://avrhelp.mcselec.com/index.html?mid.htm
Allerdings versteh ich jetzt nicht richtig wie ich diesen Befehl einsetzen muss :(
Kann mir das jemand erklären oder evt. auch ein einfaches Beispielprogramm schreiben??
Ich blick da nicht so ganz durch...

Mfg
bnitram

molleonair
18.07.2012, 14:59
dim teil as string*4
dim ganzes as string*15
ganzes="Ich will nicht"
teil=mid (ganzes,5,4)

der string "teil" wird aus dem string "ganzes" Ausgestanzt ab Position 5 mit einer Länge von 4 Zeichen
"Print teil" ergibt also "will"

bnitram
20.07.2012, 17:17
Hallo molleonair,
Danke für deine Antwort. Jetzt habe ich es verstanden:)

Mfg
bnitram

peterfido
21.07.2012, 23:24
Eine Alternative für Overlayfetischisten wie ich es bin:

$regfile = "M32DEF.DAT"
$crystal = 16000000
$hwstack = 512
$swstack = 512
$framesize = 512
$baud = 57600
Dim S As String * 4
Dim Werte(4) As Byte At S Overlay
Dim B As Byte
Config Portd = Output

Do
Gosub Werteausstringnachport

Loop
End

Werteausstringnachport:
If Len(s) = 4 Then 'geht auch mit 8 Werten
For B = 0 To 3 'For B = 0 To 7
Portd.b = Werte(b).0 'bit0 ist bei 49 (asc("1")) =1, bei "0" =0
Next B
End If
Return