webForumDet fria alternativet
Logga in / Bli medlem

INI och ListView

.NET

9 svar · 306 visningar · startad av xcalibrate

Medlem sedan aug. 2002136 inlägg
Trådstart#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.

Medlem 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
Medlem 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å

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

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

Medlem 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
Medlem 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?

Medlem 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

Medlem sedan aug. 2002136 inlägg
#9

du har inte lust att skriva hur? :P

Medlem 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

262 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)