/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Tjek om array er tomt?
Fra : Brian Bendtsen


Dato : 18-05-06 09:41

Hej

Hvordan er det nu lige man tjekker om et array er tomt.

Når jeg bruger denne kode:

for i=0 to ubound(myarray)
....
next

får jeg denne fejl hvis arrayet er tomt:

Microsoft VBScript runtime error '800a0009'

Subscript out of range: 'ubound'

isEmpty(myArray) siger mærkeligt nok true, så den kan ikke bruges.

Nogen ideer?

/Brian Bendtsen

 
 
Michael Zedeler (18-05-2006)
Kommentar
Fra : Michael Zedeler


Dato : 18-05-06 09:53

Brian Bendtsen wrote:
> Hvordan er det nu lige man tjekker om et array er tomt.
>
> Når jeg bruger denne kode:
>
> for i=0 to ubound(myarray)
> ...
> next
>
> får jeg denne fejl hvis arrayet er tomt:
>
> Microsoft VBScript runtime error '800a0009'
>
> Subscript out of range: 'ubound'
>
> isEmpty(myArray) siger mærkeligt nok true, så den kan ikke bruges.

isEmpty == true => dit array er tomt, så hvad er præcis problemet?

Mvh. Michael.
--
Which is more dangerous? TV guided missiles or TV guided families?
Visit my home page at http://michael.zedeler.dk/
Get my vcard at http://michael.zedeler.dk/vcard.vcf

Brian Bendtsen (18-05-2006)
Kommentar
Fra : Brian Bendtsen


Dato : 18-05-06 10:02

Michael Zedeler wrote:
> Brian Bendtsen wrote:
>
>> Hvordan er det nu lige man tjekker om et array er tomt.
>>
>> Når jeg bruger denne kode:
>>
>> for i=0 to ubound(myarray)
>> ...
>> next
>>
>> får jeg denne fejl hvis arrayet er tomt:
>>
>> Microsoft VBScript runtime error '800a0009'
>>
>> Subscript out of range: 'ubound'
>>
>> isEmpty(myArray) siger mærkeligt nok true, så den kan ikke bruges.
>
>
> isEmpty == true => dit array er tomt, så hvad er præcis problemet?
>
> Mvh. Michael.
Undskyld, der skulle selvfølgelig ha' stået FALSE

/Brian Bendtsen

Chrisser (18-05-2006)
Kommentar
Fra : Chrisser


Dato : 18-05-06 10:19

Brian Bendtsen wrote:
> Hej
>
> Hvordan er det nu lige man tjekker om et array er tomt.
>
> Når jeg bruger denne kode:
>
> for i=0 to ubound(myarray)
> ...
> next

Du kan lægge en If uden om din forløkke:

If Ubound(myarray) > 0 Then
for i=0 to ubound(myarray)

Mvh
Chrisser



Brian Bendtsen (18-05-2006)
Kommentar
Fra : Brian Bendtsen


Dato : 18-05-06 10:34

Chrisser wrote:
> Brian Bendtsen wrote:
>
>>Hej
>>
>>Hvordan er det nu lige man tjekker om et array er tomt.
>>
>>Når jeg bruger denne kode:
>>
>>for i=0 to ubound(myarray)
>>...
>>next
>
>
> Du kan lægge en If uden om din forløkke:
>
> If Ubound(myarray) > 0 Then
> for i=0 to ubound(myarray)
>
> Mvh
> Chrisser
>
>
Hej

Det var det første jeg prøvede, det giver samme fejl, da det er
funktionen ubound(myarray) der giver fejlen.

/Brian Bendtsen

terje (18-05-2006)
Kommentar
Fra : terje


Dato : 18-05-06 11:26

Brian Bendtsen wrote:

> Det var det første jeg prøvede, det giver samme fejl, da det er
> funktionen ubound(myarray) der giver fejlen.

Hei Brian. Du kan ganske enkelt teste kontrollert om denne feilen
oppstår. Her er et forslag til en liten funksjon som gjør nettopp det:

Function IsSafeArray(arr)
On Error Resume Next

Dim lUp

lUp = UBound(arr)

IsSafeArray = (Err.Number = 0)

Err.Clear

End Function

Du kaller funksjonen slik:

If IsSafeArray(myarray) Then
' Her vet du at alt er ok
' Merk at du her ikke sjekker om ditt array er tomt, men at det er
initialisert på riktig måte i memory. Enkelte plasser i arrayet,
eventuelt alle, kan likevel være tomme. Hvis ditt array består av
strenger så tester du dette med hjelp av Len funksjonen.
End If

terje

Brian Bendtsen (18-05-2006)
Kommentar
Fra : Brian Bendtsen


Dato : 18-05-06 12:38

terje wrote:
> Brian Bendtsen wrote:
>
>> Det var det første jeg prøvede, det giver samme fejl, da det er
>> funktionen ubound(myarray) der giver fejlen.
>
>
> Hei Brian. Du kan ganske enkelt teste kontrollert om denne feilen
> oppstår. Her er et forslag til en liten funksjon som gjør nettopp det:
>
> Function IsSafeArray(arr)
> On Error Resume Next
>
> Dim lUp
>
> lUp = UBound(arr)
>
> IsSafeArray = (Err.Number = 0)
>
> Err.Clear
>
> End Function
>
> Du kaller funksjonen slik:
>
> If IsSafeArray(myarray) Then
> ' Her vet du at alt er ok
> ' Merk at du her ikke sjekker om ditt array er tomt, men at det er
> initialisert på riktig måte i memory. Enkelte plasser i arrayet,
> eventuelt alle, kan likevel være tomme. Hvis ditt array består av
> strenger så tester du dette med hjelp av Len funksjonen.
> End If
>
> terje
Den ser ud til at virke, tak for det!

/Brian Bendtsen

Jens Gyldenkærne Cla~ (18-05-2006)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 18-05-06 11:21

Brian Bendtsen skrev:

> Det var det første jeg prøvede, det giver samme fejl, da det er
> funktionen ubound(myarray) der giver fejlen.

Prøv at tjekke om dit array i det hele taget opfattes som et array:

If IsArray(myarray) Then
   ' Ubound(myarray) skulle gerne virke
Else
   ' Ingen grund til at prøve et gennemløb af myarray
End If
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177483
Tips : 31964
Nyheder : 719565
Indlæg : 6408395
Brugere : 218884

Månedens bedste
Årets bedste
Sidste års bedste