bealem
asked on
Split space delimited string with text qualifiers.
Hi,
Using VB.Net in Visual Studio 2003
I have a string (originates from a text file) that I'd need to split, into an array or seperate variables, it doesn't really matter.
The problem is, it's space delimited, and has double-quotes for text qualifiers round the text fileds.
e.g:
"C" "01" "90000014" 1997 15/04/97 "D/D PAYMENT" "Mr John Smith" 47.58 11/04/97
The above example has 9 fields. As you can see, the text fields have double-quotes round them, number & date fields do not.
I've searched and found a couple of routines, but none seem to work correctly with what I have.
Any ideas welcome.
Cheers
Mike
Using VB.Net in Visual Studio 2003
I have a string (originates from a text file) that I'd need to split, into an array or seperate variables, it doesn't really matter.
The problem is, it's space delimited, and has double-quotes for text qualifiers round the text fileds.
e.g:
"C" "01" "90000014" 1997 15/04/97 "D/D PAYMENT" "Mr John Smith" 47.58 11/04/97
The above example has 9 fields. As you can see, the text fields have double-quotes round them, number & date fields do not.
I've searched and found a couple of routines, but none seem to work correctly with what I have.
Any ideas welcome.
Cheers
Mike
ASKER
Hi Ronald,
That is the example I have tried.
As it is, it strips out the spaces between the "s resulting in "MrJohnSmith"
I fixed that, but can't seem to get to the items it has split, seems to make a collection type, (with keys & valies) but I don't know how to get the items out of it.
I can get it to return the number of items, but thats about it!
Cheers
Mike
That is the example I have tried.
As it is, it strips out the spaces between the "s resulting in "MrJohnSmith"
I fixed that, but can't seem to get to the items it has split, seems to make a collection type, (with keys & valies) but I don't know how to get the items out of it.
I can get it to return the number of items, but thats about it!
Cheers
Mike
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
oeps pressed submit too soon,
this is because the splitdelimitedline function will return a collection of mysection class
this is because the splitdelimitedline function will return a collection of mysection class
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks for the tips & code Ronald & Clif.
I'm going to use Clifs code, as the routine that I found & Ronald pointed out, does seem to do odd things with some data, but Ronald has sown me how to get the data out.
Clif, your code needed one minor fix:
Private Function splitString(ByVal sText As String) As String()
It seems to work perfect for what I need, thanks.
I'm going to use Clifs code, as the routine that I found & Ronald pointed out, does seem to do odd things with some data, but Ronald has sown me how to get the data out.
Clif, your code needed one minor fix:
Private Function splitString(ByVal sText As String) As String()
It seems to work perfect for what I need, thanks.
bealem,
What was wrong with "As Array"?
What was wrong with "As Array"?
ASKER
Hi Clif,
With it set "As Array" I kept getting the error:
"Option Strict On disallows implicit conversions from 'System.Array' to '1-dimensional array of String'."
when I tried to call the splitString function, I couldn't find a way to convert (ctype) it.
I'm still pretty new to .Net, coming over from VB6, all very confusing!
Cheers
Mike
With it set "As Array" I kept getting the error:
"Option Strict On disallows implicit conversions from 'System.Array' to '1-dimensional array of String'."
when I tried to call the splitString function, I couldn't find a way to convert (ctype) it.
I'm still pretty new to .Net, coming over from VB6, all very confusing!
Cheers
Mike
I, too, have come from VB6.
I've never turned on "Option Strict". Now I know a good reason to keep it off. :)
I've never turned on "Option Strict". Now I know a good reason to keep it off. :)
ASKER
Yeah, it seems far too fussy this VB.Net.
I've been on a couple of VB6 to VB.Net courses, and they always say turn on Option Strict!!!
Does help sometimes when I don't know what I'm doing, but it's a pain at other times.
Anyway
Thanks for you help Clif, your code is now in use :-)
Cheers
Mike
I've been on a couple of VB6 to VB.Net courses, and they always say turn on Option Strict!!!
Does help sometimes when I don't know what I'm doing, but it's a pain at other times.
Anyway
Thanks for you help Clif, your code is now in use :-)
Cheers
Mike
http://www.freevbcode.com/ShowCode.asp?ID=4938