Hejsan,
Jag har en INI-fil som ser ut såhär:
[Server1]
hostname=asda
maxplayers=123
password=asd
map=asdas
levelrotation=12
winlimit=12
roundlimit=4
freezetime=3
buytime=3
startmoney=16000
Hur gör jag om jag vill ladda in detta i en Listview vid start?
Ska tillägga också att det är bara hostname, password, maxplayers och map som skall laddas i listviewn. Men de andra ska finnas i variabler som kan användas på andra sätt.
i = 0
do while true
i = i +1
GetPrivateProfileString "Server" & i, "hostname", sHostName, len(sHostName), <sökväg till din ini-fil>
if sHostName = "" exit do
GetPrivateProfileString "Server" & i, "maxplayers", sMaxPlayers, len(sHostName), <sökväg till din ini-fil>
' osv ..
Set lItem = dinListView.ListItems.Add(, , sHostName)
lItem.SubItems(1) = sMaxPlayers
' osv ..
loop
Okej tack för den hjälp jag fick, fast nu är fallet att man inte vet vad Server1 och Server2 heter. Plus att det kan vara 10 st eller 20 osv... Någon som vet? Thx ändå
fast nu är fallet att man inte vet vad Server1 och Server2 heter. Plus att det kan vara 10 st eller 20 osv...
Kan inte riktigt se var jag förutsatte att man "vet vad Server1 och Server2 heter" eller att det bara finns ett speciellt antal (förutom att det inte får finnas luckor). Utveckla gärna vad du menar ..
Alltså användaren lägger till en [hanstext] där hans information sparas.
Sen vill jag att alla användares information lagras i en listview!
Så den laddar alla [hanstext] 'det kan vara hur många som helst beroende på hur många användare det är. Sen all info (hostname, maxplayers osv.) laddas i subitems.
Alltså användaren lägger till en [hanstext] där hans information sparas.
OK. Så sektionerna heter inte alls Server1, Server2 osv .. som man så klart tror när man läser ditt första inlägg? Om det nu är så så antar jag att du först blir tvungen att ta reda på vad alla sektioner heter med GetPrivateProfileSectionNames och sen använda ungefär koden ovan på var och en av sektionerna som returneras.
Pseudo-kod (version 2):
GetPrivateProfileSectionNames sBuffer, len(sBuffer), <sökväg till din ini-fil>
arrSections = split(sBuffer, chr(0))
for i = 1 to ubound(arrSections) - 1
GetPrivateProfileString arrSections(i), "hostname", sHostName, len(sHostName), <sökväg till din ini-fil>
GetPrivateProfileString arrSections(i), "maxplayers", sMaxPlayers, len(sMaxPlayers), <sökväg till din ini-fil>
' osv ..
Set lItem = dinListView.ListItems.Add(, , sHostName)
lItem.SubItems(1) = sMaxPlayers
' osv ..
next i
Måste jag inte göra lite variabler också?
Text till sBuffer, sHostname osv?
Dim sHostname as String
Dim sMaxPlayers As Integer
Dim sBuffer() as byte? Dim sBuffer as Integer?
Nej, faktiskt inte men om du googlar på "GetPrivateProfileString visual basic" eller "GetPrivateProfileSectionNames visual basic" så lär du få upp hur mycket exempel som helst.