SyntaxBomb - Indie Coders

Languages & Coding => Blitz Code Archives => Miscellaneous => Topic started by: BlitzBot on June 29, 2017, 00:28:38

Title: [bmx] 2 Split String to Array funcs by klepto2 [ 1+ years ago ]
Post by: BlitzBot on June 29, 2017, 00:28:38
Title : 2 Split String to Array funcs
Author : klepto2
Posted : 1+ years ago

Description : In my module I have got 2 methods for splitting Strings and send them to an Array. I have made 2 functions out of them to share them with you.

The first one called Return_strip devides the string as often it finds the delivered ASCII code in the String.

The second one called Return_strip2 devides the string as long as the delivered _strip:string is. i.e: the stripstring is
" :" the main string will be divided two times.
("Load Map:Test.dat" will result in 1. "load" and 2. "Map:Test.dat" with the first function but with the second one you will get : 1."Load" 2."Map" 3."Test.Dat")


Code :
Code (blitzmax) Select
Strict

Local I:Int



Print "Return_strip2 : ('Load Map:Test.dat')"

Local Strip:String[]
Strip = Return_Strip2("Load Map:Test.dat"," :")
For I = 0 To Strip.length-1
Print I + " : " + Strip[I]
Next

Print "Return_strip  : ('Load Map:Test.dat')"

Local Strip2:String[]
Strip2 = Return_Strip("Load Map:Test.dat",32)
For I = 0 To Strip2.length-1
Print I + " : " + Strip2[I]
Next




Function Return_Strip2:String[](_String:String,_strip:String)

Local Text_Array : String[1]
Local R_Text:String = _string
Local i:Int = 0

Repeat
If R_Text.Length = 0 Then Exit
Local sp_p:Int = R_Text.Find(Mid(_strip,I+1,1))
If sp_p = - 1 Or I > _strip.length -1 Then
Text_Array[I] = R_Text
Exit
End If
Text_Array[I] = Left(R_Text,sp_p)
R_Text = Right(R_Text,(R_text.Length - sp_p)-1)
I:+1
Text_Array = Text_array[..I+1]
Forever

Return Text_array

End Function

Function Return_Strip:String[](_String:String,_strip:Int)

Local Text_Array : String[1]
Local R_Text:String = _string
Local i:Int = 0

Repeat
If R_Text.Length = 0 Then Exit
Local sp_p:Int = R_Text.Find(Chr(_strip))
If sp_p = - 1  Then
Text_Array[I] = R_Text
Exit
End If
Text_Array[I] = Left(R_Text,sp_p)
R_Text = Right(R_Text,(R_text.Length - sp_p)-1)
I:+1
Text_Array = Text_array[..I+1]
Forever

Return Text_array

End Function


Comments : none...