Reputation: 780
how can I use a different function "InStr" this is the code that I am using and works fine but moving away from InStr is my goal
i = InStr(1, Hostname, Environment.Newline)
Upvotes: 10
Views: 51280
Reputation: 38875
String.Indexof()
with several overloads:
Dim jstr = "How much wood could a woodchuck chuck if a woodchuck..."
' Find a character from a starting point
ndx = jstr.IndexOf("w"c) ' == 2 (first w)
' or within a range:
ndx = jstr.IndexOf("o"c, 12) ' == 15 first o past 12 (cOuld)
'Find a string
ndx = jstr.IndexOf("wood") ' == 9
' ...from a starting point
ndx = jstr.IndexOf("wood", 10) ' == 22 (WOODchuck)
' ...or in part of the string
ndx = jstr.IndexOf("chuck", 9, 15) ' -1 (none in that range)
' using a specified comparison method:
ndx = jstr.IndexOf("WOOD", StringComparison.InvariantCultureIgnoreCase) ' 9
ndx = jstr.IndexOf("WOOD", nFirst, StringComparison)
ndx = jstr.IndexOf("WOOD", nFirst, nLast, StringComparison)
There is also a String,LastIndexOf()
method to get the last occurance of something in a string also with a variety of overloads.
Available in MSDN or Object Browser (VIEW menu | Object Browser) in the VS near you.
i = Hostname.Indexof(Environment.Newline, 1)
Upvotes: 21
Reputation: 2759
If you need equivalent C# code you can use Strings
class from Microsoft.VisualBasic
assembly, thus code can be like following:
using Microsoft.VisualBasic;
. . .
i = Strings.InStr(1, Hostname, Environment.NewLine);
Another approach is using appropriate String.Indexof
function.
Links:
Upvotes: 8