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

Calculate Average by Date from Text File

P: n/a
I have a comma separated text file in the form:

11/28/2004 12:00:00, 2.78655354
11/28/2004 12:00:10, 1.9978
11/28/2004 12:00:20, 0.978
11/29/2004 12:00:00, 1.98467
11/29/2004 12:00:10, 3.005

I would like to be able to read the file and then write just the date
and the average value to a to an array and then output it to a text
file. I am not having any problems reading in the file. However, I
can't figure out how to summarize the raw data into an array or
structure or collection. The data should look like this:

11/28/2004 1.9207844
11/29/2004 2.494835

I would imagine it requires a for loop of some sort. I have tried for
a while but with no luck. Hopefully, someone can answer this for me.
Here is what I have so far:

Private Sub btnWriteOutputFile_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles btnWriteOutputFile.Click
Dim srdCurrent As System.IO.StreamReader
Dim intInputCount, intOutputCount, intTempCount As Integer
Dim strLine As String
Dim strFields() As String
Dim chrDelimiter() As Char = {ToChar(",")}
Dim swriCurrent As System.IO.StreamWriter
ofdInputFile.Title = "What file do you want to summarize"
ofdInputFile.ShowDialog()
srdCurrent = New System.IO.StreamReader(ofdInputFile.FileName)
strLine = srdCurrent.ReadLine

Do Until strLine = Nothing
ReDim Preserve OutputRecords(intInputCount)
strFields = strLine.Split(chrDelimiter)
OutputRecords(intInputCount).RecordDate =
ToDateTime(strFields(0))
OutputRecords(intInputCount).Temperature =
ToSingle(strFields(1))
intInputCount += 1
strLine = srdCurrent.ReadLine
Loop
For intOutputCount = 0 To OutputRecords.GetUpperBound(0)

Summarizing Code Here ?????

Next
sfdOutputFile.Title = "Choose File or Name File to save
summary to"
sfdOutputFile.ShowDialog()
swriCurrent = New
System.IO.StreamWriter(sfdOutputFile.FileName)
For intOutputCount = 0 To OutputRecords.GetUpperBound(0)
swriCurrent.Write(OutputRecord(intCount).RecordDat e.ToShortDateString
swriCurrent.Write(",")
swriCurrent.Write(OutputRecord(intCount).Temperatu re 'This
should be the average
swriCurrent.WriteLine()
Next

srdCurrent.Close()

End Sub
Nov 21 '05 #1
Share this Question
Share on Google+
1 Reply


P: n/a
look into regex.split
"Alex" <al**@protexionproducts.com> wrote in message
news:48**************************@posting.google.c om...
I have a comma separated text file in the form:

11/28/2004 12:00:00, 2.78655354
11/28/2004 12:00:10, 1.9978
11/28/2004 12:00:20, 0.978
11/29/2004 12:00:00, 1.98467
11/29/2004 12:00:10, 3.005

I would like to be able to read the file and then write just the date
and the average value to a to an array and then output it to a text
file. I am not having any problems reading in the file. However, I
can't figure out how to summarize the raw data into an array or
structure or collection. The data should look like this:

11/28/2004 1.9207844
11/29/2004 2.494835

I would imagine it requires a for loop of some sort. I have tried for
a while but with no luck. Hopefully, someone can answer this for me.
Here is what I have so far:

Private Sub btnWriteOutputFile_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles btnWriteOutputFile.Click
Dim srdCurrent As System.IO.StreamReader
Dim intInputCount, intOutputCount, intTempCount As Integer
Dim strLine As String
Dim strFields() As String
Dim chrDelimiter() As Char = {ToChar(",")}
Dim swriCurrent As System.IO.StreamWriter
ofdInputFile.Title = "What file do you want to summarize"
ofdInputFile.ShowDialog()
srdCurrent = New System.IO.StreamReader(ofdInputFile.FileName)
strLine = srdCurrent.ReadLine

Do Until strLine = Nothing
ReDim Preserve OutputRecords(intInputCount)
strFields = strLine.Split(chrDelimiter)
OutputRecords(intInputCount).RecordDate =
ToDateTime(strFields(0))
OutputRecords(intInputCount).Temperature =
ToSingle(strFields(1))
intInputCount += 1
strLine = srdCurrent.ReadLine
Loop
For intOutputCount = 0 To OutputRecords.GetUpperBound(0)

Summarizing Code Here ?????

Next
sfdOutputFile.Title = "Choose File or Name File to save
summary to"
sfdOutputFile.ShowDialog()
swriCurrent = New
System.IO.StreamWriter(sfdOutputFile.FileName)
For intOutputCount = 0 To OutputRecords.GetUpperBound(0)
swriCurrent.Write(OutputRecord(intCount).RecordDat e.ToShortDateString
swriCurrent.Write(",")
swriCurrent.Write(OutputRecord(intCount).Temperatu re 'This
should be the average
swriCurrent.WriteLine()
Next

srdCurrent.Close()

End Sub

Nov 21 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.