Jag behöver hjälp med att fylla en combobox från en ini fil. Så här ser min kod ut just nu: Som felmeddelandet säger så finns det inget i vnt.. fylla en combobox från ini-fil?
En modul:
Imports Microsoft.VisualBasic.Compatibility
Module getINIinCombo
Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Public Function GetStringFromIni(ByVal vsIniFile As String, ByVal vsSection As String, ByVal vsKey As String) As String
Dim sBuffer As String
Dim lRet As Long
sBuffer = Space(1024)
lRet = GetPrivateProfileString(vsSection, vsKey, "", sBuffer, Len(sBuffer), vsIniFile)
GetStringFromIni = Left$(sBuffer, lRet)
End Function
End Module
Private Sub FillComboFromIni()
Dim sIniFile As String
Dim sTmp As String
Dim lIdx As Long
Dim vnt As Object
sIniFile = "handkorning.ini"
lIdx = 1
' Läs in första raden i avsnittet
sTmp = GetStringFromIni(sIniFile, "331815", "1")
Do While sTmp <> ""
' Dela upp strängen, resultatet hamnar i arrayen vnt
vnt = Split(vnt, ";")
If UBound(vnt) = 1 Then
With Me.ComboMotorerKap.Items.Add(vnt(1))
Me.ComboMotorerKap.Items(ComboMotorerKap.SelectedIndex) = vnt(0) <----------------
End With
End If
' Fortsätt att läsa in så länge det finns rader i avsnittet
lIdx = lIdx + 1
sTmp = GetStringFromIni(sIniFile, "Motorer_Kap", CStr(lIdx))
Loop
End Sub
Jag har skrivit en pil på högra sidan på raden jag får fel på.
"Variable 'vnt' is used before it has been assigned a value. A null reference"
Vad är det jag gör för fel?
Jag vet att många kommer säga att jag inte borde hämta från en ini. Men det är det jag fått att göra så det är inte så mycket att göra åt.Sv: fylla en combobox från ini-fil?
Som det ser ut hos dig:
<code>
Do While sTmp <> ""
' Dela upp strängen, resultatet hamnar i arrayen vnt
vnt = Split(vnt, ";")
</code>
borde kanske vara
<code>
Do While sTmp <> ""
' Dela upp strängen, resultatet hamnar i arrayen vnt
vnt = Split(sTmp, ";")
</code>