hey guys!

how can I read strings from a file? Like... They will compose part of the interface... something like, read a string from a file, then this string points to a image that will be used in a picture box, as same as a label that will be shown with the read value.

I first thought on a xml file... or a ini too, to separate entries.

Something like this:

!-- Entry one
[Entry One]
Name=Some name
Icon=C:\path\to\icon
Command= !-- do something here

[Entry Two]
Name=Some name 2
Icon=C:\path\to\icon\2
Command = !-- do something here

and so on...

There is someway to do it? Thanks!

Recommended Answers

All 3 Replies

If your INI File content is exactly as you have posted, see if this helps.

Public Class Form1
    Private myFile As String = "C:\test.txt" '// your File.
    Private arlFileInfo As New ArrayList '// ArrayList to store Information for each Entry.
    Dim arTemp() As String = Nothing '// String Array to use as needed.

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If IO.File.Exists(myFile) Then '// check if File Exists.
            arTemp = IO.File.ReadAllLines(myFile) '// Read each Line into a String Array.
            For i As Integer = 0 To arTemp.Length - 1 '// Loop thru all Lines.
                If arTemp(i).StartsWith("[Entry") Then '// If Line .StartsWith("[Entry").
                    '// Add 1st, 2nd, and 3rd Lines following the Line that .StartsWith("[Entry") as New Item to your Array List.
                    arlFileInfo.Add(arTemp(i + 1) & "~" & arTemp(i + 2) & "~" & arTemp(i + 3)) '// "~" used to .Split Item when extracting data from Item.
                End If
            Next
        End If
        '//======== DISPLAY RESULT FOR SECOND ENTRY =======
        arTemp = arlFileInfo(1).ToString.Split("~") '// split Item 2 by the "~" char.
        '// Display result.
        MsgBox(arTemp(0) & vbNewLine & arTemp(1) & vbNewLine & arTemp(2), MsgBoxStyle.Information) '======\\
        '//======== DISPLAY RESULT FOR FIRST ENTRY =======
        arTemp = arlFileInfo(0).ToString.Split("~") '// split Item 1 by the "~" char.
        '// Display result.
        MsgBox(arTemp(0) & vbNewLine & arTemp(1) & vbNewLine & arTemp(2), MsgBoxStyle.Information) '======\\
    End Sub
End Class

woah, thanks!

I'll try it out. Since I posted, I've been looking for another ways, now I'll decide if its better use this or a SQLite database (:

Thanks again!

Well, appears that using SQLite will be better. It can store everything inside a one file, which sounds better to me. I've also found a nice tutorial written in portuguese (my main language), that helped me a lot.

So, I'll use SQLite. But this piece of code its nice too. I might use it too (: Thanks!

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.