Avatar billede martin_moth Mester
24. januar 2002 - 09:26 Der er 5 kommentarer og
1 løsning

NEMT: Statisk Array i VB

Hej

Jeg har følgende array

Dim Array(1 To 99) as Double

Når programmet køres, bliver der fyldt et ukendt antal (mellem 0 og 99) værdier i Arrayet, muligvis også værdien nul.

Jeg skal så finde den plads i arrayet, der ikke er blevet tildelt en værdi.

Følgende virker IKKE, men viser hvad jeg mener:

For i=1 to 99
  if Array (i) = "ikke tildelt værdi" then
    MsgBox "Plads nr " & i & " er ubrugt"
    exit for
  End if
next i

Jeg har prøvet med "if Array(i) = Empty", men det virker ikke (jeg aner ikke hvordan Empty må bruges). Og jeg kan ikke søge på if Array(i) = 0, da nul er en mulig/lovlig værdi.

HVORDAN finder man den sidste ubrugte plads i et statisk array???

PS: Løsningen er IKKE et dynamsik array og UBound...

/Martin
Avatar billede jimse Nybegynder
24. januar 2002 - 09:57 #1
Jeg er ikke sikker på dette men værdien er måske NULL (med to l'er)
eller måske bare ""
Avatar billede martin_moth Mester
24. januar 2002 - 11:19 #2
"" er ulovlig (en Double kan ikke være lig en tom stregn), og Null virker ikke :-(

Men mon der ikke findes noget andet end Null og Empty, der virker???
Avatar billede tjacob Juniormester
24. januar 2002 - 11:59 #3
En løsning kunne være, at du FØRST fylder Array'et med en værdi, som du ved ikke kan blive aktuel, f.eks. 5000. Så fyldes array'et (delvist) med de rigtige værdier, og derefter kan du søge på 5000.
Avatar billede johs_j Novice
24. januar 2002 - 13:48 #4
Når du Dim'mer en Double bliver der puttet et 0 i hvert ellement. Det gælder for alle tal-variabler.
Avatar billede johs_j Novice
24. januar 2002 - 13:52 #5
Det betyder at hvis du selv fylder 0 i nogle kan det jo give problemer. Jeg vil foreslå følgende:

For i=1 to 99
  Array (i) = "-1"
next i

Nu kan du så søge efter værdien -1, altså et tal der ligger uden for det område som du fylder i.

Din rutine søger efter en tekst, og det kan man ikke i en talvariabel.
Avatar billede martin_moth Mester
24. januar 2002 - 17:39 #6
Nu var linien
if Array (i) = "ikke tildelt værdi" then
bare ment som en forklaring - jeg skriver naturligvis ikke "ikke tildelt værdi" i koden.

Men oplysningen om, at den smider 0'er i arrayet var en hjælp, så du får dine points - takker /Martin
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester