Re: How to open a .CSV file ?



Well, not really. Quoted values (and single quotes and any other special
character) could be escaped before any parsing took place.

As for the .Split method of a string, it most certainly would serve a
practical purpose, it wold split the string at whatever character it is told
to. The fact is that we are talking about a delimited file here and that
means that the delimeter is a known character - this is exactly what
..split() is for.

Now, I grant you that if the CSV is a large file, then a StreamReader and
the .split() method are probably not the most efficient approach, but the OP
didn't indicate it was a large file.

Other than the file size, there is no reason why reading the file contents
in, escaping any trouble characters and parsing the string at the delimeter
wouldn't work just fine.




"GhostInAK" <paco@xxxxxxxx> wrote in message
news:be1391bf1c5218c8bb6e9594ebe3@xxxxxxxxxxxxxxxxxxxxx
Hello Scott M.,

Well, yes, you could write your own CSV parser as MDO did.. but that would
serve no practical purpose other than to teach you how to write a string
parser.

I assume when you said "parse at the comma" you meant string.split. While
you could use this function, it would be stupid to use it on a CSV file.
Quoted values are going to kill you. It's not worth it.

-Boo

You can use this technique to parse the file at any character, it
doesn't have to be the comma.

"GhostInAK" <paco@xxxxxxxx> wrote in message
news:be1391bf1c1ee8c8ba8d6a850af6@xxxxxxxxxxxxxxxxxxxxx

Hello Scott M.,

Because not all CSV files are supposed to be parsed at the comma:
Value One, "Value, Two", Value Three

OP, your connection string is wrong. Try:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\;Extended
Properties=Text;

-Boo

Why not just use a StreamReader class and parse the values at the
commas?

"fniles" <fniles@xxxxxxxxxx> wrote in message
news:%23pruw%23K7GHA.4708@xxxxxxxxxxxxxxxxxxxxxxx
I have a .CSV file (comma delimited) that I want to open using
OLEDB,
but I
get the error "External table is not in the expected format."
If I save the .CSV file to an .XLS file, I can open the connection
with no
problem.
What is the correct way to open a .CSV file ?
If I can not open the CSV file, how can I programmatically save the
CSV
file to an XLS file ?
Thanks a lot.
dim myCon OleDb.OleDbConnection
myCon = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data
Source=c:\file.csv; Extended Properties=""Excel 8.0; HDR=NO;
IMEX=1""")
--> error "External table is not in the expected format."




.



Relevant Pages

  • Re: How to open a .CSV file ?
    ... I'm really having trouble understanding why you feel the need to insult ... I suppose by your reasoning every file is just a big long string and we ... I assume when you said "parse at the comma" you meant string.split. ... If I save the .CSV file to an .XLS file, ...
    (microsoft.public.dotnet.languages.vb)
  • Re: How to open a .CSV file ?
    ... I suppose by your reasoning every file is just a big long string and we should all be using the string manipulation functions to work with them. ... programming possibilites. ... I assume when you said "parse at the comma" you meant string.split. ... If I save the .CSV file to an .XLS file, ...
    (microsoft.public.dotnet.languages.vb)
  • Finding multiple occurrences of character in word document
    ... multiple occurrences' of a specific character in one sentence. ... I know the basic idea behind the algorithm and I know how to implement ... into a string. ... search for another comma. ...
    (microsoft.public.word.vba.general)
  • Re: parsing a char* using strtok
    ... Step through the string. ... When you find a comma, ... the 'start' pointer (that you initialize to the first character in the ... set the 'start' pointer to the ...
    (microsoft.public.windowsce.embedded.vc)
  • Re: How to open a .CSV file ?
    ... string is "amature", you may be a bit closed minded to other programming ... I assume when you said "parse at the comma" you meant string.split. ... If I save the .CSV file to an .XLS file, ...
    (microsoft.public.dotnet.languages.vb)

Loading