By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
446,376 Members | 1,540 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 446,376 IT Pros & Developers. It's quick & easy.

problem with data.Split(vbCrLf)

P: n/a
Ron
Hello,

I am trying to parse a string on the newline char. I
guess vbCrLf is a string constant. How can I parse my
string - data - on the newline char?
....
data += ASCII.GetString(buffer, 0, bytesRead)
....
Dim parts() As String = data.Split(vbCrLf)

Thanks,
Ron
Nov 21 '05 #1
Share this Question
Share on Google+
14 Replies


P: n/a
Hi Ron,

I think the Split method of the string object either takes a single char or
an array of chars. If you use the latter overload, .NET will assume that
any of the chars in the array qualify as a separating character, hence if
you pass in CrLf it decides that either Cr OR Lf is a separator. This means
you'll end up with a blank string for every other element in the array of
parts().

The way I always use is the good ol' fashioned VB Split function, as this
does exactly what you want, eg:

Dim parts() As String = Split(data, vbCrLf)

Regards,
Alex Clark
"Ron" <an*******@discussions.microsoft.com> wrote in message
news:17****************************@phx.gbl...
Hello,

I am trying to parse a string on the newline char. I
guess vbCrLf is a string constant. How can I parse my
string - data - on the newline char?
...
data += ASCII.GetString(buffer, 0, bytesRead)
...
Dim parts() As String = data.Split(vbCrLf)

Thanks,
Ron

Nov 21 '05 #2

P: n/a
You can use a StringReader to read a string line by line:

Dim sr As new StringReader(sStringToRead)
while sr.peek <> -1
Dim s as string = sr.ReadLine
'Do something with s here
end While

Perhaps this will help you

Nov 21 '05 #3

P: n/a
Ron
Thanks. I thought about that, but I thought I would check
to see if maybe I was missing something in vb.net. Guess
I have to import the Microsoft.VisualBasice namespace?

Thanks again,
Ron

-----Original Message-----
Hi Ron,

I think the Split method of the string object either takes a single char oran array of chars. If you use the latter overload, .NET will assume thatany of the chars in the array qualify as a separating character, hence ifyou pass in CrLf it decides that either Cr OR Lf is a separator. This meansyou'll end up with a blank string for every other element in the array ofparts().

The way I always use is the good ol' fashioned VB Split function, as thisdoes exactly what you want, eg:

Dim parts() As String = Split(data, vbCrLf)

Regards,
Alex Clark
"Ron" <an*******@discussions.microsoft.com> wrote in messagenews:17****************************@phx.gbl...
Hello,

I am trying to parse a string on the newline char. I
guess vbCrLf is a string constant. How can I parse my
string - data - on the newline char?
...
data += ASCII.GetString(buffer, 0, bytesRead)
...
Dim parts() As String = data.Split(vbCrLf)

Thanks,
Ron

.

Nov 21 '05 #4

P: n/a
Ron
It took me a while to see what you were doing. This is
pretty cool. I will give that a try. I am trying to
steer away from using Microsoft.VisualBasic for the sake
of using DotNet functionality. I will give this a try,
otherwise, I will go with the good'ol VB Split function.

Thanks,
Ron

-----Original Message-----
You can use a StringReader to read a string line by line:

Dim sr As new StringReader(sStringToRead)
while sr.peek <> -1
Dim s as string = sr.ReadLine
'Do something with s here
end While

Perhaps this will help you

.

Nov 21 '05 #5

P: n/a
"Ron" <an*******@discussions.microsoft.com> schrieb:
Thanks. I thought about that, but I thought I would check
to see if maybe I was missing something in vb.net. Guess
I have to import the Microsoft.VisualBasice namespace?


This should be done automatically in VB.NET projects. 'Split' is member of
the 'Microsoft.VisualBasic.Strings' module.

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>

Nov 21 '05 #6

P: n/a
Ron
Thanks. I thought about that, but I thought I would check
to see if maybe I was missing something in vb.net. Guess
I have to import the Microsoft.VisualBasice namespace?

Thanks again,
Ron

-----Original Message-----
Hi Ron,

I think the Split method of the string object either takes a single char oran array of chars. If you use the latter overload, .NET will assume thatany of the chars in the array qualify as a separating character, hence ifyou pass in CrLf it decides that either Cr OR Lf is a separator. This meansyou'll end up with a blank string for every other element in the array ofparts().

The way I always use is the good ol' fashioned VB Split function, as thisdoes exactly what you want, eg:

Dim parts() As String = Split(data, vbCrLf)

Regards,
Alex Clark
"Ron" <an*******@discussions.microsoft.com> wrote in messagenews:17****************************@phx.gbl...
Hello,

I am trying to parse a string on the newline char. I
guess vbCrLf is a string constant. How can I parse my
string - data - on the newline char?
...
data += ASCII.GetString(buffer, 0, bytesRead)
...
Dim parts() As String = data.Split(vbCrLf)

Thanks,
Ron

.

Nov 21 '05 #7

P: n/a
Ron
It took me a while to see what you were doing. This is
pretty cool. I will give that a try. I am trying to
steer away from using Microsoft.VisualBasic for the sake
of using DotNet functionality. I will give this a try,
otherwise, I will go with the good'ol VB Split function.

Thanks,
Ron

-----Original Message-----
You can use a StringReader to read a string line by line:

Dim sr As new StringReader(sStringToRead)
while sr.peek <> -1
Dim s as string = sr.ReadLine
'Do something with s here
end While

Perhaps this will help you

.

Nov 21 '05 #8

P: n/a
"Ron" <an*******@discussions.microsoft.com> schrieb:
Thanks. I thought about that, but I thought I would check
to see if maybe I was missing something in vb.net. Guess
I have to import the Microsoft.VisualBasice namespace?


This should be done automatically in VB.NET projects. 'Split' is member of
the 'Microsoft.VisualBasic.Strings' module.

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>

Nov 21 '05 #9

P: n/a
Alex,

Thanks for that, it is obvious, however I did never understand it.

Cor
Nov 21 '05 #10

P: n/a
you could always remove the CR using string.remove(vbcr) and then split on
LF only - eg string.split(vblf).

ie
dim mystringarray() as string =mystring.remove(vbCr).split(vbLf)

Hope this helps..
Simon
"Ron" <an*******@discussions.microsoft.com> wrote in message
news:12****************************@phx.gbl...
It took me a while to see what you were doing. This is
pretty cool. I will give that a try. I am trying to
steer away from using Microsoft.VisualBasic for the sake
of using DotNet functionality. I will give this a try,
otherwise, I will go with the good'ol VB Split function.

Thanks,
Ron

-----Original Message-----
You can use a StringReader to read a string line by line:

Dim sr As new StringReader(sStringToRead)
while sr.peek <> -1
Dim s as string = sr.ReadLine
'Do something with s here
end While

Perhaps this will help you

.

Nov 21 '05 #11

P: n/a
Alex,

Thanks for that, it is obvious, however I did never understand it.

Cor
Nov 21 '05 #12

P: n/a
you could always remove the CR using string.remove(vbcr) and then split on
LF only - eg string.split(vblf).

ie
dim mystringarray() as string =mystring.remove(vbCr).split(vbLf)

Hope this helps..
Simon
"Ron" <an*******@discussions.microsoft.com> wrote in message
news:12****************************@phx.gbl...
It took me a while to see what you were doing. This is
pretty cool. I will give that a try. I am trying to
steer away from using Microsoft.VisualBasic for the sake
of using DotNet functionality. I will give this a try,
otherwise, I will go with the good'ol VB Split function.

Thanks,
Ron

-----Original Message-----
You can use a StringReader to read a string line by line:

Dim sr As new StringReader(sStringToRead)
while sr.peek <> -1
Dim s as string = sr.ReadLine
'Do something with s here
end While

Perhaps this will help you

.

Nov 21 '05 #13

P: n/a
Ron,
As Alex stated, String.Split splits based on individual characters. If you
want to split based on words I would recommend Strings.Split or RegEx.Split.

There are three Split functions in .NET:

Use Microsoft.VisualBasic.Strings.Split if you need to split a string based
on a specific word (string). It is the Split function from VB6.

Use System.String.Split if you need to split a string based on a collection
of specific characters. Each individual character is its own delimiter.

Use System.Text.RegularExpressions.RegEx.Split to split based
on matching patterns.
NOTE: Microsoft.VisualBasic *is* "DotNet functionality"! There is little
real reason to avoid it altogether. Some classes, such as
Microsoft.VisualBasic.Collection, I avoid altogether as most of the time it
is TOO general. I try not to mix Microsoft.VisualBasic.Strings functions
with System.String methods that take or return indexes, as VB.Strings uses
base 1 indexes, while System.String uses base 0 indexes, and this mixing
could lead to obscure bugs... VB.Split is one method I will use as
System.String currently does not have an actual equivalent (VS.NET 2005, aka
Whidbey, due out later in 2005, does have a String.Split
http://msdn2.microsoft.com/library/tabh47cf.aspx method that works on
words).

Hope this helps
Jay
"Ron" <an*******@discussions.microsoft.com> wrote in message
news:17****************************@phx.gbl...
Hello,

I am trying to parse a string on the newline char. I
guess vbCrLf is a string constant. How can I parse my
string - data - on the newline char?
...
data += ASCII.GetString(buffer, 0, bytesRead)
...
Dim parts() As String = data.Split(vbCrLf)

Thanks,
Ron

Nov 21 '05 #14

P: n/a
Ron,
As Alex stated, String.Split splits based on individual characters. If you
want to split based on words I would recommend Strings.Split or RegEx.Split.

There are three Split functions in .NET:

Use Microsoft.VisualBasic.Strings.Split if you need to split a string based
on a specific word (string). It is the Split function from VB6.

Use System.String.Split if you need to split a string based on a collection
of specific characters. Each individual character is its own delimiter.

Use System.Text.RegularExpressions.RegEx.Split to split based
on matching patterns.
NOTE: Microsoft.VisualBasic *is* "DotNet functionality"! There is little
real reason to avoid it altogether. Some classes, such as
Microsoft.VisualBasic.Collection, I avoid altogether as most of the time it
is TOO general. I try not to mix Microsoft.VisualBasic.Strings functions
with System.String methods that take or return indexes, as VB.Strings uses
base 1 indexes, while System.String uses base 0 indexes, and this mixing
could lead to obscure bugs... VB.Split is one method I will use as
System.String currently does not have an actual equivalent (VS.NET 2005, aka
Whidbey, due out later in 2005, does have a String.Split
http://msdn2.microsoft.com/library/tabh47cf.aspx method that works on
words).

Hope this helps
Jay
"Ron" <an*******@discussions.microsoft.com> wrote in message
news:17****************************@phx.gbl...
Hello,

I am trying to parse a string on the newline char. I
guess vbCrLf is a string constant. How can I parse my
string - data - on the newline char?
...
data += ASCII.GetString(buffer, 0, bytesRead)
...
Dim parts() As String = data.Split(vbCrLf)

Thanks,
Ron

Nov 21 '05 #15

This discussion thread is closed

Replies have been disabled for this discussion.