Solved

Defining a bidimensional array

Posted on 2006-11-13
7
1,081 Views
Last Modified: 2008-01-09
How can i define a bidimensional array that i dont know how many rows or columns will have?
0
Comment
Question by:acvieira
7 Comments
 
LVL 25

Expert Comment

by:nauman_ahmed
ID: 17930489
What you are trying to accomplish?

--Nauman.
0
 

Author Comment

by:acvieira
ID: 17930561
I Receive files in a folder the name of file = date e.g 12-05-2006.txt
the algorithm breaks each date part into an array and then I need each part to go into a bidirectional array but i am getting errors when I tty to insert the data.

Please find enclosed the code I am talking about.

thanx for all your help.



------------------------------------
<%

Dim fileDate
Dim oldestFile
Dim fileName
Dim filesArray()
'Dim inFileArray()
Dim counter

Set folderFS = Server.CreateObject("Scripting.FileSystemObject")
folderPath = Request.ServerVariables("APPL_PHYSICAL_PATH") & "txts"

Set objFolder = folderFS.GetFolder(folderPath)
Set objFiles = objFolder.Files

counter = 0
For Each objFile In objFiles
      'fileDate = objFile.DateCreated
      fileName = objFile
        inFileArray = Split(fileName,"-")
      'response.write(inFileArray )
      filesArray(counter,0) = inFileArray
      filesArray(counter,1) = inFileArray(1)
      filesArray(counter,2) = inFileArray(2)
      filesArray(counter,3) = inFileArray(3)      
      'response.write("ficheiro " + counter + " dia: " + filesArray(counter,0) + "; mês: " + filesArray(counter,1) + "; ano: " + filesArray(counter,2))
      'response.write("'response.write("o ficheiro " & fileName & " Foi criado em " & fileDate & "<br />")
      counter = counter + 1
Next

%>
0
 
LVL 25

Expert Comment

by:nauman_ahmed
ID: 17930651
After splitting, the first element of array is always 0 i.e. inFileArray(0), inFileArray(1), inFileArray(2). What I wanted to know why you have to use the bidimensional array.

--Nauman.
0
Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
LVL 11

Expert Comment

by:ethoths
ID: 17930742
Use and arraylist of arraylists.

        Dim parent As New ArrayList
        Dim child1 As New ArrayList
        parent.Add(child1)
        Dim child2 As New ArrayList
        parent.Add(child2)


Unlike an array, you can dynamically resize an ArrayList. If you want to get clever you could also consider using generics.

0
 

Author Comment

by:acvieira
ID: 17930810
This :

    filesArray(counter,0) = inFileArray

should be:

    filesArray(counter,0) = inFileArray(0)

It was an error pasting . . .

I have a folder full of files with the naming described above e.g. : 01-10-2006.txt. I'm using this pattern so I can find which file is the most recent or old etc according to it's name and not it's creation date. For that I was trying to use the script above, which still doesn't have the comparison method.
The reason why I am resorting to the bi-dimensional array is so that every file can have it's name splitted and i can make a comparison afterwards, by using the X of the array (array(x,y)) to define which file and the Y's to define day, month, year and file extension. This last part is the one that I'm having trouble with ( Not the comparisson but the creation of the bi-dimensional array).

Thanx for all your help
0
 
LVL 4

Expert Comment

by:satish_nagdev
ID: 17930836
hi,
i assume you are using .NET, here is what i tried

Dim fil As New FileInfo("C:\\2006-20-10.txt")
dim filename as string =fil.Name()
 Dim strs As String() = fil.Name().Split("-")
        Response.Write(strs(0) + vbCrLf)
        Response.Write(strs(1) + vbCrLf)
        Response.Write(strs(2) + vbCrLf)

hope it helps

regards,
satish
0
 
LVL 25

Accepted Solution

by:
nauman_ahmed earned 500 total points
ID: 17931016
The following work fine. I am assuming you can manage the most recent date from the list:

Dim files As String
        Dim filesArr As String()
        Dim filePartArr(0, 3) As String
        Dim counter As Int32 = 0
        files = "12-05-2006.txt,13-05-2006.txt,14-05-2006.txt"
        filesArr = files.Split(",")
        ReDim filePartArr(filesArr.Length, 3)
        For Each file As String In filesArr

            Dim filePart As String()
            filePart = file.Split("-")
            filePartArr(counter, 0) = filePart(0)
            filePartArr(counter, 1) = filePart(1)
            filePartArr(counter, 2) = filePart(2).Replace(".txt", "")
            counter = counter + 1

        Next

        For i As Int32 = 0 To counter - 1
            Response.Write("Day: " & filePartArr(i, 0) & ", Month: " & filePartArr(i, 1) & ", Year: " & filePartArr(i, 2) & "<br>")
        Next

--Nauman.
0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article discusses the ASP.NET AJAX ModalPopupExtender control. In this article we will show how to use the ModalPopupExtender control, how to display/show/call the ASP.NET AJAX ModalPopupExtender control from javascript, how to show/display/cal…
Introduction This article shows how to use the open source plupload control to upload multiple images. The images are resized on the client side before uploading and the upload is done in chunks. Background I had to provide a way for user…
Email security requires an ever evolving service that stays up to date with counter-evolving threats. The Email Laundry perform Research and Development to ensure their email security service evolves faster than cyber criminals. We apply our Threat…
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

831 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question