SPLIT/de

From MCS Wiki AVR
Jump to: navigation, search

Contents

Funktion

Verteilt eine Zeichenkette in eine Anzahl von Array-Elementen.

 

 

Syntax

count = SPLIT (source, array, search)

 

 

Anmerkungen

count

Anzahl von Elementen, die SPLIT() zurückgegeben hat. Wenn das Array nicht groß genug definiert ist um alle Teilstrings aufzunehmen dann ist das die Maximalgröße des Arrays. Stellen Sie daher sicher, dass das Array groß genug ist um die Ergebnisse aufzunehmen.

source

Zeichenkette oder Zeichenketten-Konstante, die zerlegt werden soll.

array

Erstes Element des zu befüllenden Arrays.

search

Zeichen, an dem getrennt werden soll. Kann ein Zeichen oder eine Zeichen-Konstante sein oder ein ASCII-Wert (Byte).

 

Wenn die serielle Schnittstelle für Daten-Empfang benutzt wird dann möchte man in manchen Fällen die Daten für die Weiterverarbeitung in Teile zerlegen.

Zum Aufteilen einer IP-Adresse wie zum Beispiel "123.45.24.12" kann man INSTR() benutzen oder SPLIT().

Das Array muss vom Programmierer mit DIM definiert werden. Der Inhalt des Arrays wird durch SPLIT() überschrieben.

 

Wichtig ist auch, zu beachten, dass die einzelnen Elemente des Arrays groß genug sein müssen um die Teile der Zeichenkette aufzunehmen.

Wenn ein Array beispielsweise 5 Elemente mit je 10 Zeichen hat dann kann eine Zeichenkette mit 11 Zeichen nicht aufgenommen werden und überschreibt ggf. weitere Elemente.

 

Die SPLIT-Funktion überschreibt keinen 'fremden' Speicherbereich. Wenn zum Beispiel "1.2.2.2.2.2.2.3.3.3" auf ein Array mit 3 Elementen zerteilt werden soll dan gehen die DATEN verloren.

Wenn leere Daten zwischen den Trennzeichen auftreten dann werden leere Array-Elemente erzeugt. Also werden bei "1,2,3,,5" fünf Elemente erzeugt von denen das vierte leer ist.

 

 

Siehe auch

INSTR , CHARPOS

 

 

Beispiel


'--------------------------------------------------------------
' mega48.bas
' mega48 sample file
' (c) 1995-2005, MCS Electronics
'--------------------------------------------------------------
$regfile = "m48def.dat"
$crystal = 8000000
$baud = 19200
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
 
 
Dim S As String * 80
Dim Ar(5) As String * 10
Dim Bcount As Byte
 
'Die Split-Funktion zerteilt eine Zeichenkette oder Zeichenketten-Konstante auf einzelne Teile.
'Die Funktion gibt die Anzahl der Teile zurück.
'Es müssen genügend Array-Elemente vorhanden sein und jedes Array-Element muss groß genug sein
'um das Ergebnis aufzunehmen
'Wenn das Ergebnis in ein Element nicht passt dann wird in das nachfolgende Element geschrieben.
'Der Speicher ist gegen Überschreiben geschützt.
 
S = "this is a test"
 
Bcount = Split( "this is a test" , Ar(1) , " ")
'bcount enthält die Anzahl der gefüllten Elemente
'ar(1) ist die Startaddress des aufnehmenden Arrays.
'" " heißt, dass an Leerzeichen getrennt wird
 
'When you use " aa" , the first element will contain a space
Bcount = Split( "thiscannotfit! into the element" , Ar(1) , " ")
 
Dim J As Byte
For J = 1 To Bcount
Print Ar(j)
Next
 
'Bei diesem Beispiel wird der nachfolgende Speicher vor Überschreiben geschützt.
'Es sind nur 5 Elemente definiert.
' Element 6 geht verloren.
Bcount = Split( "do not overflow the array please" , Ar(1) , " ")
 
For J = 1 To Bcount
Print Ar(j)
Next
End

Languages   English Deutsch  
Personal tools
Namespaces
Variants
Actions
Navigation
In other languages
Language