• 0

(VB) Read Text File Into a 2 Dimensional Array


Question

I need to read a sequential data file into an array. I'm not where things are going wrong here. I keep getting an error "Input past end of file". I'm pretty certain my text file is good. Anyone tell me what I'm doing wrong? My text books aren't yielding the answers, nor is the internet thus far.

Dim strRecords(6, 5) As String

Dim product_list As String

Dim ProductList As Integer

Dim dataFile As String

Dim row As Integer

Dim col As Integer

dlgCommon.Filter = "DAT|*.dat|Text|*.txt|All|*.*"

dlgCommon.ShowOpen

product_list = dlgCommon.FileName

ProductList = FreeFile

Open product_list For Input As #1

Do Until EOF(1)

For row = 1 To 6

For col = 1 To 5

Input #1, strRecords(row, col)

Next col

Next row

Loop

And the text file...

"L666","SURGE PROTECTOR","PC KING",3.30,160,"N"<CR>

"M013","MS MOUSE","MEMORY-REX",23.22,28,"N"<CR>

"H013","20 GB HARD DISK","MICRO SHOP",190.90,18,"N"<CR>

"L005","17'' MONITOR","KING",205.00,4,"N"<CR>

"M713","56K BAUD MODEM","MEMORY-REX",99.00,88,"N"<EOF>

Thanks,

~D

5 answers to this question

Recommended Posts

  • 0
  MrA said:
Why aren't you using a structure to hold your data instead of a 2D array.  Also, items 4 & 5 of each line are numbers, not strings.  That may cause you some problems later (or maybe now).

585015640[/snapback]

Could you clarify your question. Are you asking why I am not using a structure or why I am not using a 2D array?

I know for this assignment I must use an array. I understand the concept of the array and how information is read into it. I just can't get information read into it. heh..

Also, I adjusted the text file making everything strings. I'll validate the numbers as needed.

  • 0
  deck said:
Could you clarify your question.  Are you asking why I am not using a structure or why I am not using a 2D array?

I know for this assignment I must use an array.  I understand the concept of the array and how information is read into it.  I just can't get information read into it. heh..

Also, I adjusted the text file making everything strings.  I'll validate the numbers as needed.

585015699[/snapback]

I'm asking why you are using a 2D array. You could define a structure and make a 1D array of that structure.

Type MyStruct
    Item1 as String
    Item2 as String
    Item3 as String
    Item4 as Single
    Item5 as Integer
    Item6 as String
End Type

Dim myArray(5) as MyStruct

Get rid of the DO LOOP. It will cause problems. Or you could change the loop to:

Dim i as Integer
i = 1
Do Until EOF(1)
  For col = 1 To 6
    Input #1, strRecords(col, i)
  Next
  i = i + 1
Loop

At then end of your data file, put:

"M713","56K BAUD MODEM","MEMORY-REX",99.00,88,"N"&lt;CR&gt;
&lt;EOF&gt;

  • 0

What is the "Input #" line storing in each string? Is it reading the entire line or is it stopping at each comma-delineated element?

For example:

Line 1 = "L666","SURGE PROTECTOR","PC KING",3.30,160,"N"

What does strRecords(1,1) equal?

Either: "L666","SURGE PROTECTOR","PC KING",3.30,160,"N"

Or: "L666"

  • 0
  DrZoidberg said:
What is the "Input #" line storing in each string?  Is it reading the entire line or is it stopping at each comma-delineated element?

For example:

Line 1 = "L666","SURGE PROTECTOR","PC KING",3.30,160,"N"

What does strRecords(1,1) equal?

Either: "L666","SURGE PROTECTOR","PC KING",3.30,160,"N"

Or: "L666"

585015945[/snapback]

I want it to read the entire line.

THEN, I want that line to be searchable using only the first field (L666). So I read the records into the array then search the first field of each of those records for the one I want.

I was able to get my array working... sort of... now I'm working on searching it.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • AliExpress faces EU crackdown, makes promises to fight illegal products by Paul Hill The European Commission has taken two significant actions against the Chinese online marketplace AliExpress under the Digital Services Act (DSA) in a bid to enhance user and consumer safety online. The first action was to get AliExpress to commit to several legally binding commitments to address issues related to advertising and recommender systems. The second action was the publication of preliminary findings which found that AliExpress had breached obligations regarding the spread of illegal products. AliExpress can now respond to the Commission but if the broken rules are confirmed then AliExpress can expect to be fined. The Digital Services Act is a new tool that the EU has to regulate large online platforms. It aims to level the business playing field, protect fundamental rights of users, create a safer digital space, and improve transparency from businesses. AliExpress's pledges: More transparency, safer shopping As part of the pledges made by AliExpress, it will do more to monitor and detect illegal products such as medicines, food supplements, and adult material propagated through hidden links and affiliate programs. To help flag illegal items, AliExpress has promised to improve its notice and action mechanism. Other pledges include enhancements to the internal complaint handling system; more transparency for advertising and recommender systems; better traceability of traders on the platform; and improved data access for researchers. By implementing these rules, the European Commission hopes it can make AliExpress safer for registered and non-registered users by limiting the exposure to illegal content. Deep dive into AliExpress's alleged failures With regards to the preliminary findings, the Commission found that AliExpress had underestimated the risks because it had not allocated enough resources to moderation systems for illegal products. It also found that the company had failed to consistently enforce its penalty policy against those publishing illegal content. The Commission also discovered systemic failures in AliExpress’s proactive content moderation systems that allowed malicious traders to continue to operate or start operating on the platform. AliExpress is designated as a Very Large Online Platform (VLOP) which means it has to meet certain standards set out by the EU. The aforementioned violations are against the quality of operation that the EU expects from VLOPs. The company now has the right to defend itself against the EC’s findings, it can examine the documents and reply in writing, but if the findings are confirmed, AliExpress could face fines and be required to submit an action plan.
    • Author/Neowin... The title is incorrect and misleading... By the official blog post, it's not "indefinitely". There's a clear statement that development continues with a few specific target areas, and a new release date TBD and announced later. If it is later announced to be cancelled or delayed indefinitely, that's another story.
    • I hate Microsoft. My parents almost lost all drive content. As senior citizens they are unable to follow constant "improvements" Microsoft is dropping on its users. My mother's laptop is normally unlocked with a PIN. It is unexplicable for non-It person, that there is some cloud mictosoft account, that has a different password than the Pin and user ID is e-mail, but not necessarily normal Gmail addree, and even if the person knows this email address the password is not the password used for this email account. Just too much of twists. Suddenly her laptop ordered entering "decryption key" before booting. It was miracle we managed to guess email address associated with the PC that was used for Microsoft account. She would had lost everything on the drive. Why are they doing this? Privacy may be important for some people, but data loss is much more important for most of the people.
    • Yesterday I've got a notification that Windows Hello couldn't recognize me and asked if I would like to improve it after I manually entered my PIN in the dark If it weren't for an article like this, I would still think that there's something wrong with my camera. I can just imagine how many people are not reading tech news and are still confused.
  • Recent Achievements

    • First Post
      xuxlix earned a badge
      First Post
    • First Post
      Tomek Święcicki earned a badge
      First Post
    • One Year In
      carlitin86 earned a badge
      One Year In
    • Reacting Well
      Peterlll06 earned a badge
      Reacting Well
    • Week One Done
      Peterlll06 earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      671
    2. 2
      ATLien_0
      284
    3. 3
      Michael Scrip
      223
    4. 4
      +FloatingFatMan
      192
    5. 5
      Steven P.
      145
  • Tell a friend

    Love Neowin? Tell a friend!