473,385 Members | 1,474 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,385 software developers and data experts.

VB.NET populate 2 dimensional array from a text file?

In Visual Basic.NET 2003, how do you populate a two dimensional array from a text file? I know how to check file existence, open the file for read, etc. I just can't get it to read more than one record from the file into the array.

I have declared a 2 dimensional, 12 row, 2 column array named strVenues(11,1)
in the public section of the form.

The instructor is gone for the week, so I can't ask her any more questions about this project now. It is due next week, and I haven't even gotten the first part of it figured out! Here's what the she said, when I asked her about this project.

"You do not need the inner FOR loop; since you know that there are only two columns, just write directly to those elements; e.g., strVenues(intRow, 0) and strVenues(intRow,1).

Also, you are not separating the data. You are filling the columns with the entire record. The fields in the record have to be separated and stored in their respective columns.


When you do your readline, you are reading the entire record into your variable strVen. The record has more than one field. You've got to use string manipulation to separate the fields and place them in the correct columns in the array.

Same thing with the list box; you only want to list the events and nothing else."

(I have not gotten to the list box part of this assignment yet.)

I did get it to add only the first field in the record, but I cannot figure out how to get it to add all of the records from the file into the array! There are 11 records in the file, "venues.txt":

Toby Keith,C
Chicago,C
Nora Jones,C
Styx,C
Peter Pan,T
Mama Mia,T
Rent,T
Cats,T
David Copperfield,E
Paula Dean Cooking,E
Tractor Pull,E

I don't know why the instructions say to create a 12 row array, when there are 11 records. Could that be the problem? If so, how would I fix it?

I think this is how you put just the first field into the array. Can you tell me where the error(s) is/are in my code?

Expand|Select|Wrap|Line Numbers
  1.     Private Sub readFile() 'reads file into an array
  2.  
  3.         'declare variables
  4.  
  5.         Dim sreReader As IO.StreamReader
  6.  
  7.         'open the file
  8.         sreReader = IO.File.OpenText("venues.txt")
  9.  
  10.         'read each record into the array until the array is filled
  11.  
  12.         Dim strVen As String, intIndex, intCount As Integer
  13.  
  14.         For intCount = 0 To 10
  15.             strVen = sreReader.ReadLine()
  16.             strVenues(intCount, 0) = strVen.Substring(0, strVen.IndexOf(","))
  17.             intIndex = strVen.IndexOf(",") + 1 
  18.             strVenues(intCount, 1) = strVen.Substring(intIndex)
  19.  
  20.         Next intCount
  21.  
  22.         sreReader.Close()
  23.  

I have tried for hours and hours, to figure this out! I watched the class lectures, studied the book and searched online, and tried different things with the code, but nothing works!!! Please help me figure this out!

Could it have something to do with the way I have used the intIndex and substring methods?

Any clue as to what I'm doing wrong will be most appreciated!

Thanks
Jul 12 '07 #1
3 9104
I have asked at three different forums (plus this one) and so far I haven't seen any response.

This is driving me nuts! I know it can be done, because my instructor knows what she's talking about, and she said to do it.

Here are a few of the many things I've been trying. The apostrophes mean that I have been experimenting with these things…erase the apostrophe and test it, add an apostrophe and test it, in different combinations:

Expand|Select|Wrap|Line Numbers
  1.  
  2.         Dim strVen As String, intIndex, intCount As Integer
  3.  
  4.         '  For intCount = 0 To 10
  5.  
  6.         ' strVen = sreReader.ReadLine()
  7.  
  8.         ' strVenues(intCount, 0) = strVen.Substring(0)
  9.  
  10.         'intIndex = strVen.IndexOf(",", intIndex) + 1
  11.  
  12.         'strVenues(intCount, 1) = strVen.Substring(0)
  13.  
  14.         'intIndex = strVen.IndexOf(",", intIndex) + 1
  15.  
  16.         ' Next intCount 
  17.  
  18.  
  19.  
  20.         'Do While sreReader.Peek() <> -1
  21.  
  22.         For intCount = 0 To 10
  23.  
  24.             strVen = sreReader.ReadLine()
  25.  
  26.             strVenues(intCount, 0) = strVen.Substring(0, strVen.IndexOf(","))
  27.  
  28.             intIndex = strVen.IndexOf(",")  
  29.  
  30.             strVenues(intCount, 1) = strVen.Substring(intIndex, 1)
  31.  
  32.             'intIndex = strVen.IndexOf(",", intIndex) + 1
  33.  
  34.             'intIndex = strVen.IndexOf(",") + 1
  35.  
  36.         Next intCount
  37.  
  38.  
Here's my test label, which still only displays the last record in the text file.

I think this might mean that the compiler IS adding all the records to the array, but erases the previous one as it adds another, leaving only the last record. But HOW would I fix it?

Expand|Select|Wrap|Line Numbers
  1.  
  2.         Try
  3.  
  4.             Dim intX As Integer
  5.  
  6.             For intX = 0 To 10
  7.  
  8.                 testLabel.Text = strVenues(intX, 0) & ControlChars.NewLine
  9.  
  10.                 'intX = intX + 1
  11.  
  12.             Next intX
  13.  
  14.         Catch ex As System.IndexOutOfRangeException
  15.  
  16.         End Try
  17.  
  18.         ' For intIndex = 0 To 10
  19.  
  20.         ' testLabel.Text = strVen.Substring(0, strVen.IndexOf(",")) & ControlChars.NewLine
  21.  
  22.         ' Next intIndex
  23.  
  24.  
Jul 12 '07 #2
I managed to discover the answer to this question on my own. In case anyone who reads this needs to know the answer, here it is:

I was not displaying the label correctly, for one thing.

Here is the code that will populate my 2d array from text file:

Expand|Select|Wrap|Line Numbers
  1.         'populate array from file
  2.  
  3.         Dim strVen As String, intIndex, intCount As Integer
  4.         For intCount = 0 To 10
  5.             strVen = sreReader.ReadLine()
  6.             strVenues(intCount, 0) = strVen.Substring(0, strVen.IndexOf(","))
  7.             intIndex = strVen.IndexOf(",") + 1
  8.             strVenues(intCount, 1) = strVen.Substring(intIndex, 1)
  9.         Next intCount
  10.  
  11.         'close the file
  12.         sreReader.Close()
  13.  
Jul 12 '07 #3
kenobewan
4,871 Expert 4TB
Well done thanks for sharing the solution.
Jul 13 '07 #4

Sign in to post your reply or Sign up for a free account.

Similar topics

1
by: smurf | last post by:
Seems a simple question, but I can't find a simple answer: I have created a two dimensional array. I wish to send the data, a row at a time to a graph plotting routine which is expected a one...
4
by: Venkat | last post by:
Hi All, I need to copy strings from a single dimensional array to a double dimensional array. Here is my program. #include <stdio.h> #include <stdlib.h>
1
by: dibblm | last post by:
I have a text file being created and need the values from the array that gets created to populate my text file. I am new and not very good. Kinda borrowing bits and pieces from here and there, so...
1
by: GB | last post by:
Hello, I have a recursion function which generate 1-dimensional vector of integers so for 3 cycles I have, for example, following vectors: int vec1 = {1,3,2,4}; int vec2 = {2,5,6,2}; int vec3 =...
8
by: per9000 | last post by:
Hi all, I have a two-dimensional array of data, f.x int's. We can imagine that the array is "really large". Now I want the data in it and store this in a one-dimensional array. The obvious...
4
by: daqmaneng | last post by:
does anyone have any suggestions for writing a two dimensional array of data to a file. Currently, I have an array of 5 columns, with 1000 elements per array. I know that I can use a for next...
10
by: SM | last post by:
Hello I'm trying to create a multi dimensional array in JavaScript, but after some reading i still can't figure out how to apply it to my model. Here it is: I have a list A and for each item...
3
GTXY20
by: GTXY20 | last post by:
Hi All, I have been able to create a successful application with Python but I am being asked to create in VB. I have a text file with the following data: 1,a 1,b 1,c 2,a
4
by: ASPnewb1 | last post by:
Hello, I have a 2-dimensional array created from the following text file: data1=asdfawe data2=2 data3=223d data4=22
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
by: ryjfgjl | last post by:
In our work, we often need to import Excel data into databases (such as MySQL, SQL Server, Oracle) for data analysis and processing. Usually, we use database tools like Navicat or the Excel import...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.