Reputation: 2386
I'd like to define an array like:
sample_array = Array( _
"foo", _
"bar", _
...
"dog", _
"cat" _
)
...in a macro written in VB for Applications (PowerPoint 2010 in this case), but I need to define the array from a text file that would just be formatted like:
foo
bar
...
dog
cat
What is the simplest way to define a text file path and read the values (assume they are always regular ascii strings) directly into an array?
Thanks!
Upvotes: 1
Views: 32689
Reputation: 3758
Dim arr() as String
dim i as Integer
i=0
Open "c:\test.txt" For Input As #1 ' Open file for input.
Do While Not EOF(1) ' Loop until end of file.
Line Input #1, arr(i) ' read next line from file and add text to the array
i=i+1
redim preserve arr(i) ' Redim the array for the new element
Loop
Close #1 ' Close file.
Upvotes: 6
Reputation: 1178
You could load the whole file in at once and split it by newlines as follows
Sub read_whole_file()
Dim sFile As String, sWhole As String
Dim v As Variant
sFile = "C:\mytxtfile.txt"
Open sFile For Input As #1
sWhole = Input$(LOF(1), 1)
Close #1
v = Split(sWhole, vbNewLine)
End Sub
Upvotes: 6