webForumDet fria alternativet

INI och ListView

9 svar · 304 visningar · startad av xcalibrate

xcalibrateMedlem sedan aug. 2002136 inlägg
#1

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

[Server2]
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.

nikoMedlem sedan juni 20022 599 inlägg
#2

Lite pseudo-kod som du kan googla vidare på:

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
xcalibrateMedlem sedan aug. 2002136 inlägg
#3

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å

nikoMedlem sedan juni 20022 599 inlägg
#4

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 ..

xcalibrateMedlem sedan aug. 2002136 inlägg
#5

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.

nikoMedlem sedan juni 20022 599 inlägg
#6

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
xcalibrateMedlem sedan aug. 2002136 inlägg
#7

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?

nikoMedlem sedan juni 20022 599 inlägg
#8

Måste jag inte göra lite variabler också?

Jo, du måste göra mycket mer än så.

http://susning.nu/Pseudo

xcalibrateMedlem sedan aug. 2002136 inlägg
#9

du har inte lust att skriva hur? :P

nikoMedlem sedan juni 20022 599 inlägg
#10

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.

De här tex:

http://www.officecomputertraining.com/vbtutorial/tutpages/page40.asp

http://www.tek-tips.com/gfaqs.cfm/lev2/4/lev3/32/pid/222/fid/39

128 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)