Slicing strings
BlitzMax Forums/BlitzMax Beginners Area/Slicing strings| 
 | ||
| I want to make myself a fucntion that sets opengl-drawcolor from a given color in hex, i.e. setGlColor ("#AABBCC") I read that Int("$AA") gives me a conversion from hex to int, but how do i slice the incoming string up in three parts? i thought something like string[0]+string[1] would work, but the problem is that string[index] just gives me an ASCII-number, not the character itself | 
| 
 | ||
| The function you are looking for is called mid$() What you are doing is critical, as it does not take unicode into account which is what BlitzStrings are. | 
| 
 | ||
| Maybe you need something like this? 
Function SetColorfromString:Byte(Color:String)
	Local R:Int,G:Int,B:Int
	If Color.length <> 7 Then Return False
	R = Int("$"+Color[1..3])
	G = Int("$"+Color[3..5])
	B = Int("$"+Color[5..7])
	Print R+";"+G+";"+B
	'SetColor R,G,B
	Return True
End Function
Print SetColorfromString("$AABB22")
Print SetColorfromString("$000000")
Print SetColorfromString("$FFFFFF")
 | 
| 
 | ||
| To slice strings: Local s:String = "#AABBCC" Local R:String = s[1..3] Local G:String = s[3..5] Local B:String = s[5..7] Print R Print G Print B | 
| 
 | ||
| Thanks everyone, got it working now and learned some new things. Where do i lookup things like for example the string[2..3] notation? Having a hard time now and then figuring out some Bmax-basics. | 
| 
 | ||
| In the docs it's under Language / Slices |