|
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | 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)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | 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)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | 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)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | 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)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | 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
| |
![](/images/tree/0.gif) terje (18-05-2006)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | 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
| |
![](/images/tree/0.gif) ![](/images/tree/0.gif) Brian Bendtsen (18-05-2006)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | 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)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | 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
| |
|
|