Code archives/Algorithms/Instr2
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
| Here's how this works. You have a string separated by commas: str = "1,2,3,4876,325" There are 4 commas in that string. This function will return the position of the commas specified. If you want to know the position of comma #3 then you would go: c3 = Instr2( str, ",",3 ) It will return a 6. I wrote this so I could return large strings of information and then extract certain numbers from it. If you wanted to extract the 4th value in your string, you would go: index1 = Instr2(str,",",3) index2 = Instr2(str,",",4) return Mid(str,index1+1,index2-index1) Simple! This could also be useful for extracting information from multiplayer packets. You could make a function like so: | |||||
Function Instr2:Int(str:String,sub:String,occ:Int)
Local i:Int,f:Int,index:Int
For i = 1 To occ
f = Instr(str,sub,index)
index = f + 1
Next
Return f
End Function
Function GetPacketValue(strPkt,strSep,intValue)
Select intValue
Case 1
Return Mid( strPkt, 1, Instr2( strPkt, Chr(44), 1) - 1) )
Case 2
index1 = Instr2( strPkt, Chr(44), 1)
index2 = Instr2( strPkt, Chr(44), 2)
Return Mid( strPkt, index1+1, index2-index1)
Case 3
'blah blah
End Select
End Function |
Comments
None.
Code Archives Forum