Hjælp med highscore

Tags:    visual-basic

Jeg har problem med at gemme værdierne fra en highscore, så de er der næste gang jeg starter programmet.

Koden er:

Dim I
Dim U

For I = 1 To 10
If Val(lblScore.Caption) > Val(txtHigh(I)) Then
U = I - 1
If Not txtHigh(U) = "Score:" Then
txtHigh(U) = txtHigh(I)
txtHigh(I) = lblScore
Else
txtHigh(I) = lblScore
End If
End If
Next I

Nogen der har foreslag til hvordan jeg kan få programmet til at gemme highscoren så den oxo er der næste gang jeg åbner programmet.... Der må gerne ændre i koden...

Jeg giver 200 UP for ordentligt svar.

Hilsen IT



6 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
Jeg har ikke prøvet koden og ved ikke om den virker i dette sammenhæng, men jeg fortrækker at bruge computerens register:

Fold kodeboks ind/udKode 


Fold kodeboks ind/udKode 
Jeg har problem med at gemme værdierne fra en highscore, så de er der næste gang jeg starter programmet.

Koden er:

Dim I
Dim U

For I = 1 To 10
If Val(lblScore.Caption) > Val(txtHigh(I)) Then
U = I - 1
If Not txtHigh(U) = "Score:" Then
txtHigh(U) = txtHigh(I)
txtHigh(I) = lblScore
Else
txtHigh(I) = lblScore
End If
End If
Next I

Nogen der har foreslag til hvordan jeg kan få programmet til at gemme highscoren så den oxo er der næste gang jeg åbner programmet.... Der må gerne ændre i koden...

Jeg giver 200 UP for ordentligt svar.

Hilsen IT


Hej,

du kan bruge Put/Get kommandoerne.

Eksempel, kan ikke garantere at det virker.

Dim I
Dim U

Open "c:\\hiscore.dat" For Binary Access Write As #1

For I = 1 To 10
If Val(lblScore.Caption) > Val(txtHigh(I)) Then
U = I - 1
If Not txtHigh(U) = "Score:" Then
txtHigh(U) = txtHigh(I)
txtHigh(I) = lblScore
Else
txtHigh(I) = lblScore
End If
End If
Put #1, , CLng(txtHigh(I))
Next I

Close #1

Og når den skal læses ind igen.

Open "c:\\hiscore.dat" For Binary Access Read As #1

For I = 1 To 10
Get #1, , txtHigh(I)
Next I

Close #1

Håber du kan bruge det.

Kim Pedersen




eY Hap.

Din kode er fin, den gemmer godt nok highscoren og den finder den også igen. Problemet er bare den kun gemmer den højeste værdi, og når programmet bliver startet igen, bliver alle scoren det højeste tal.... Håber du har en løsning... Du kan evt. skrive koden til den du har brugt i radomize program..

Takker



Jeg kan da ikke se hvorfor den kun gemmer den øverste...

Fold kodeboks ind/udKode 


Hvis vi nu zoomer ind på koden så vi kun får det med vi tænker på:
Fold kodeboks ind/udKode 

For hver gang den køre i gennem bliver txtHigh(I) gemt i en forskellig nøgle, I...

første gang:
SaveSetting "Programmets navn", "Highscore", 1, txtHigh(1)

anden gang:
SaveSetting "Programmets navn", "Highscore", 2, txtHigh(2)

trejde gang:

SaveSetting "Programmets navn", "Highscore", 3, txtHigh(3)

osv...



Nej HAP.

Den gemmer ikke først 1 og bagefter 2 osv. Den gemmer kun nummer 1 og når du så starter programmet op igen bliver alle txt boksene = den gemte nr. 1 værdi. Plz hjælp mig. Skal få det til at virke hurtigst muligt.

This is not a good day to die on.



Hvis du sender dit projekt til: "henrik.alsing@get2net.dk" kan jeg prøve om jeg kan få det til at virke...

PS. Husk at sende alle filer og at zippe dem med winzip så jeg ikke tager 2 år at hente det ned!



t