Sub split (s As Const String, sepList As Const String, result() As String)
  If s = "" OrElse sepList = "" Then 
     Redim result(0)
     result(0) = s
     Return
  End If
  Dim As Integer i, j, count = 0, empty = 0, length
  Dim As Integer position(Len(s) + 1)
  position(0) = 0
 
  For i = 0 To len(s) - 1
    For j = 0 to Len(sepList) - 1
      If s[i] = sepList[j] Then 
        count += 1
        position(count) = i + 1       
      End If
    Next j
  Next i
 
  Redim result(count)
  If count  = 0 Then
    result(0) = s
    Return
  End If
 
  position(count + 1) = len(s) + 1
 
  For i = 1 To count + 1  
    length = position(i) - position(i - 1) - 1 
    result(i - 1) = Mid(s, position(i - 1) + 1, length)
  Next
End Sub

Type ConfigData
  fullName As String
  favouriteFruit As String
  needsPeeling As Boolean
  seedsRemoved As Boolean
  otherFamily(Any) As String
End Type

Sub readConfigData(fileName As String, cData As ConfigData)
  Dim fileNum As Integer = FreeFile
  Open fileName For Input As #fileNum
  If err > 0 Then
    Print "File could not be opened"
    Sleep
    End
  End If
  Dim ln As String
  While Not Eof(fileNum)
    Line Input #fileNum, ln
    If ln = "" OrElse Left(ln, 1) = "#" OrElse Left(ln, 1) = ";" Then Continue While
    If UCase(Left(ln, 8)) = "FULLNAME" Then 
      cData.fullName = Trim(Mid(ln, 9), Any " =")
    ElseIf UCase(Left(ln, 14)) = "FAVOURITEFRUIT" Then
      cData.favouriteFruit = Trim(Mid(ln, 15), Any " =")
    ElseIf UCase(Left(ln, 12)) = "NEEDSPEELING" Then
      Dim s As String = Trim(Mid(ln, 13), Any " =")
      If s = ""  OrElse UCase(s) = "TRUE" Then 
        cData.needsPeeling = True
      Else
        cData.needsPeeling = False
      End If
    ElseIf UCase(Left(ln, 12)) = "SEEDSREMOVED" Then
      Dim s As String = Trim(Mid(ln, 13), Any " =")
      If s = ""  OrElse UCase(s) = "TRUE" Then 
        cData.seedsRemoved = True
      Else
        cData.seedsRemoved = False
      End If
    ElseIf UCase(Left(ln, 11)) = "OTHERFAMILY" Then
       split Mid(ln, 12), ",", cData.otherFamily()
       For i As Integer = LBound(cData.otherFamily) To UBound(cData.otherFamily)
         cData.otherFamily(i) = Trim(cData.otherFamily(i), Any " =")
       Next
    End If
  Wend
  Close #fileNum
End Sub   

Dim fileName As String = "config.txt"
Dim cData As ConfigData
readConfigData fileName, cData
Print "Full name        = "; cData.fullName
Print "Favourite fruit  = "; cData.favouriteFruit
Print "Needs peeling    = "; cData.needsPeeling
Print "Seeds removed    = "; cData.seedsRemoved
For i As Integer = LBound(cData.otherFamily) To UBound(cData.otherFamily)
  Print "Other family("; Str(i); ")  = "; cData.otherFamily(i)
Next
Print
Print "Press any key to quit"
Sleep
