Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   ASP General (http://www.velocityreviews.com/forums/f65-asp-general.html)
-   -   Web Forms / HTTP File Upload / String.Split a StreamReader.ReadLine() string (http://www.velocityreviews.com/forums/t791667-web-forms-http-file-upload-string-split-a-streamreader-readline-string.html)

Andy Mee 11-18-2003 02:48 PM

Web Forms / HTTP File Upload / String.Split a StreamReader.ReadLine() string
 
Hello one and all,

I'm developing an Asp.NET system to take a CSV file uploaded via the web,
parse it, and insert the values into an SQL database. My sticking point
comes when I try to split() the string returned by readline() on the file.

The following code snippet works for me:
tokens = "one,two,three,four".Split(",")
for each token in tokens
response.write("<td>"+token+"</td>")
next

However, if I take the next line in the CSV, read using
StreamReader.ReadLine on the PostedFile.InputStream, I receive "Object
reference not set to an instance of an object." which I have narrowed down
to be my string holding the line. Further investigation reveals that no
other string member functions work on my line (.ToCharArray, .ToString,
etc).

I suspect that StreamReader.ReadLine is not correctly returning a string,
even though Response.Write(line) displays what I would expect.

I would appreciate any help or suggestions anybody can offer as to what's
going on here.

Thanks,

Andy


-- code --

<%@ Page Language="VB" Debug="true" %>
<%@ Import Namespace="System.IO" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<link href="adwords.css" rel="stylesheet" type="text/css" media="screen" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Upload CSV</title>
</head>
<body>

<script runat="server">
Sub UploadFile_Clicked(Sender as Object, e as EventArgs)
Dim str As Stream

str = loFile.PostedFile.InputStream()
Dim sr As StreamReader = New StreamReader(str)

Dim tokens as String() = Nothing
Dim line, token, t as String

Dim i as integer
for i = 1 to 6
line = sr.ReadLine()
next i
response.write("<table>")

do
line = sr.ReadLine()
response.write("<tr>")
tokens = line.Split(ControlChars.Tab)
for each token in tokens
response.write("<td>"+token+"</td>")
next
response.write("</tr>")
loop until line is nothing
response.write("</table>")

sr.close()

End sub
</script>

<form action="upload.aspx" method="post" enctype="multipart/form-data"
runat="server">
<fieldset>
<legend>Select a file to upload:</legend>
<p><input id="loFile" type="file" runat="server"></p>
<p><input type="submit" OnServerClick="UploadFile_Clicked"
class="clientloginsubmit" name="Submit" value="Upload AdWords CSV"
runat="server" /></p>
</fieldset>
</form>

</body>
</html>



TomB 11-18-2003 03:07 PM

Re: Web Forms / HTTP File Upload / String.Split a StreamReader.ReadLine() string
 
This forum is for classic asp questions.

If this were in classic asp, personally I'd use ado to connect to the csv
and treat it like a database table.


"Andy Mee" <andy@RemoveThisSubDomain.itqsolutions.net> wrote in message
news:bpdbfv$n5$1@hercules.btinternet.com...
> Hello one and all,
>
> I'm developing an Asp.NET system to take a CSV file uploaded via the web,
> parse it, and insert the values into an SQL database. My sticking point
> comes when I try to split() the string returned by readline() on the file.
>
> The following code snippet works for me:
> tokens = "one,two,three,four".Split(",")
> for each token in tokens
> response.write("<td>"+token+"</td>")
> next
>
> However, if I take the next line in the CSV, read using
> StreamReader.ReadLine on the PostedFile.InputStream, I receive "Object
> reference not set to an instance of an object." which I have narrowed down
> to be my string holding the line. Further investigation reveals that no
> other string member functions work on my line (.ToCharArray, .ToString,
> etc).
>
> I suspect that StreamReader.ReadLine is not correctly returning a string,
> even though Response.Write(line) displays what I would expect.
>
> I would appreciate any help or suggestions anybody can offer as to what's
> going on here.
>
> Thanks,
>
> Andy
>
>
> -- code --
>
> <%@ Page Language="VB" Debug="true" %>
> <%@ Import Namespace="System.IO" %>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
> <head>
> <link href="adwords.css" rel="stylesheet" type="text/css" media="screen"

/>
> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
> <title>Upload CSV</title>
> </head>
> <body>
>
> <script runat="server">
> Sub UploadFile_Clicked(Sender as Object, e as EventArgs)
> Dim str As Stream
>
> str = loFile.PostedFile.InputStream()
> Dim sr As StreamReader = New StreamReader(str)
>
> Dim tokens as String() = Nothing
> Dim line, token, t as String
>
> Dim i as integer
> for i = 1 to 6
> line = sr.ReadLine()
> next i
> response.write("<table>")
>
> do
> line = sr.ReadLine()
> response.write("<tr>")
> tokens = line.Split(ControlChars.Tab)
> for each token in tokens
> response.write("<td>"+token+"</td>")
> next
> response.write("</tr>")
> loop until line is nothing
> response.write("</table>")
>
> sr.close()
>
> End sub
> </script>
>
> <form action="upload.aspx" method="post" enctype="multipart/form-data"
> runat="server">
> <fieldset>
> <legend>Select a file to upload:</legend>
> <p><input id="loFile" type="file" runat="server"></p>
> <p><input type="submit" OnServerClick="UploadFile_Clicked"
> class="clientloginsubmit" name="Submit" value="Upload AdWords CSV"
> runat="server" /></p>
> </fieldset>
> </form>
>
> </body>
> </html>
>
>




Andy Mee 11-18-2003 03:29 PM

Re: Web Forms / HTTP File Upload / String.Split a StreamReader.ReadLine() string
 
> This forum is for classic asp questions.

Apologies... if I scan my news server for ASP groups, I find precisely five.
Discounting Italian, German and Hebrew groups, I'm left with three. None of
them seemed to specify what ASP they were dealing with...


> If this were in classic asp, personally I'd use ado to connect to the csv
> and treat it like a database table.


Thanks for that -- I'll look into the ADO stuff in .NET.

Still baffled by the completely nonsensical error though :)

Andy.



Ray at 11-18-2003 03:39 PM

Re: Web Forms / HTTP File Upload / String.Split a StreamReader.ReadLine() string
 
Use these "words" as your search through the newsgroups:

aspnet
adonet
dotnet (broad)

Ray at work

"Andy Mee" <andy@RemoveThisSubDomain.itqsolutions.net> wrote in message
news:bpddsd$4h0$1@sparta.btinternet.com...
> > This forum is for classic asp questions.

>
> Apologies... if I scan my news server for ASP groups, I find precisely

five.
> Discounting Italian, German and Hebrew groups, I'm left with three. None

of
> them seemed to specify what ASP they were dealing with...
>
>
> > If this were in classic asp, personally I'd use ado to connect to the

csv
> > and treat it like a database table.

>
> Thanks for that -- I'll look into the ADO stuff in .NET.
>
> Still baffled by the completely nonsensical error though :)
>
> Andy.
>
>




Bob Barrows 11-18-2003 03:41 PM

Re: Web Forms / HTTP File Upload / String.Split a StreamReader.ReadLine() string
 
Andy Mee wrote:
>> This forum is for classic asp questions.

>
> Apologies... if I scan my news server for ASP groups, I find
> precisely five. Discounting Italian, German and Hebrew groups, I'm
> left with three. None of them seemed to specify what ASP they were
> dealing with...
>
>

The .dotnet.* groups are set up for .Net questions.

Bob Barrows
--
Microsoft MVP -- ASP/ASP.NET
Please reply to the newsgroup. The email account listed in my From
header is my spam trap, so I don't check it very often. You will get a
quicker response by posting to the newsgroup.



TomB 11-18-2003 03:58 PM

Re: Web Forms / HTTP File Upload / String.Split a StreamReader.ReadLine() string
 
http://www.able-consulting.com/MDAC/...crosoftJetText


"Andy Mee" <andy@RemoveThisSubDomain.itqsolutions.net> wrote in message
news:bpddsd$4h0$1@sparta.btinternet.com...
> > This forum is for classic asp questions.

>
> Apologies... if I scan my news server for ASP groups, I find precisely

five.
> Discounting Italian, German and Hebrew groups, I'm left with three. None

of
> them seemed to specify what ASP they were dealing with...
>
>
> > If this were in classic asp, personally I'd use ado to connect to the

csv
> > and treat it like a database table.

>
> Thanks for that -- I'll look into the ADO stuff in .NET.
>
> Still baffled by the completely nonsensical error though :)
>
> Andy.
>
>





All times are GMT. The time now is 10:39 PM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.