Avatar billede krogstrup Nybegynder
28. juli 2005 - 11:48 Der er 29 kommentarer og
1 løsning

En hurtig: Hvordan sletter jeg et array

Lidt kryptisk, men jeg har en side hvor jeg opretter en variabel indeholdende et array.

Hvordan "nulstiller" jeg denne variabel igen, så den enten ikke længere eksisterer eller i hvert fald ikke længere repræsenterer et array ?

har prøvet med

arrFiles = Nothing
set arrFiles = Nothing
set arrFiles() = Nothing

osv osv. - what to do ?
Avatar billede busschou Praktikant
28. juli 2005 - 11:50 #1
arrFiles = Array("1","2","3")
arrFiles = "IB"
Sådan :o)
Avatar billede softspot Forsker
28. juli 2005 - 11:53 #2
evt. arrFiles = empty
Avatar billede phhepl Nybegynder
28. juli 2005 - 11:54 #3
unset() evt. også :)
Avatar billede phhepl Nybegynder
28. juli 2005 - 11:55 #4
hobv så ikke det var ASP.
Avatar billede krogstrup Nybegynder
28. juli 2005 - 11:59 #5
bliver ved med at få fejlen:

Der opstod en Microsoft VBScript-kørselsfejl fejl '800a000d'
Typer stemmer ikke overens

i den linie hvor jeg forsøger at "nulstille" variablen.

jeg har oprettet variabelen således oprindeligt: dim arrFiles()

følgende virker f.eks. heller ikke:
dim arrFiles()
arrFiles = "IB"
Avatar billede krogstrup Nybegynder
28. juli 2005 - 12:00 #6
busschou >
Kan godt se at dit eksempel virker, men jeg har bare ikke oprettet mit array på den måde, og kan derfor ikke benytte din metode

?!?
Avatar billede busschou Praktikant
28. juli 2005 - 12:01 #7
et array er ikke noget specielt i asp så vidt jeg har forstået
Så du vil altid kunne sige
arrFiles = ""
og så er det en tom streng
eller
arrFiles = 4
og så er det et tal
eller
arrFiles = Array("1","2","3")
og så er det et array igen
Avatar billede busschou Praktikant
28. juli 2005 - 12:02 #8
hov med mindre du har dim´et den til et array :o)
Avatar billede krogstrup Nybegynder
28. juli 2005 - 12:03 #9
hehe
hva så? Kan den ikke dim´es til noget andet, hvis først den er dim´et til et array ?
Avatar billede busschou Praktikant
28. juli 2005 - 12:03 #10
Avatar billede busschou Praktikant
28. juli 2005 - 12:04 #11
Avatar billede krogstrup Nybegynder
28. juli 2005 - 12:08 #12
øh - redim kan da ikke bruges til at ændre en variabels datatype, men blot til at ændre dimensioner på et oprettet array ?!?

jeg har jo brug for at kunne ændre datatype for min variabel...
fra array til f.eks. string
Avatar billede krogstrup Nybegynder
28. juli 2005 - 12:10 #13
hmm - nedenstående giver output: array findes ?!?

<% dim arrFiles()
erase arrFiles

if isArray(arrFiles) then
    response.write "array findes"
else
    response.write "array findes ikke"
end if %>
Avatar billede krogstrup Nybegynder
28. juli 2005 - 12:10 #14
så erase virker tilsyneladende ikke....
Avatar billede busschou Praktikant
28. juli 2005 - 12:10 #15
nej erase tømmer det blot
Avatar billede krogstrup Nybegynder
28. juli 2005 - 12:12 #16
aaah - ok
Avatar billede busschou Praktikant
28. juli 2005 - 12:12 #17
men hvorfor ønsker du at benytte arrFiles både som et array og som en streng?
Forvirringen vil hurtig blive stor i din kode da "arr" som regel refererer til et array og man da vil tro man har et array, men kun har en streng
Avatar billede busschou Praktikant
28. juli 2005 - 12:13 #18
Du kan lade være med at dim´me den , så burde du kunne overskrive den
Men det er et problem, da man som regel skal specificere størrelsen på arrayet jo
Avatar billede krogstrup Nybegynder
28. juli 2005 - 12:13 #19
jeg har ikke brug for at den bliver til string, fordi jeg skal bruge variablen til indhold af typen string.

Jeg har brug for at konvertere til string, således at nedenstående tjek ikke giver positiv

if isArray(arrFiles) then
bla bla
end if
Avatar billede softspot Forsker
28. juli 2005 - 12:15 #20
Hvis du skal bruge din variabel til noget andet end array, så skal du lade være med at dimensionere det som et array, men som en variabel du tildeler et array. Således:

dim arrFiles
arrFiles = new Array()

Så burde det være muligt at ændre typen...
Avatar billede softspot Forsker
28. juli 2005 - 12:17 #21
Hov! Fik jeg lige blandet noget javascript-syntaks ind i det... skal det min være:

arrFiles = Array()
Avatar billede busschou Praktikant
28. juli 2005 - 12:18 #22
ja ok det er så en mulighed
Jeg ville nok foretrække at tømme arrayet og så tjekke på om indholdet på første plads var noget eller ej
For sådan der skal du først oprette arrayet og så indsætte noget, så slette det, tjekke om der er noget, oprette igen osv
Men det er måske en smagssag :o)
Avatar billede softspot Forsker
28. juli 2005 - 12:20 #23
busschou >> øøh... kan du give et eksempel på forskellene, jeg forstår ikke helt...?
Avatar billede krogstrup Nybegynder
28. juli 2005 - 12:23 #24
softspot >
Det virker - smider du et svar ?

busschou >
Du har ret i at man også bare kunne tjekke om første plads indeholder noget, fremfor at ændre datatypen for at kunne bruge "if isArray() then" Men indtil videre prøver jeg softspots løsning der umiddelbart virker ganske fint.

Tak til jer begge for indsatsen :-)
Avatar billede softspot Forsker
28. juli 2005 - 12:23 #25
Fik du der :)
Avatar billede busschou Praktikant
28. juli 2005 - 12:24 #26
Jeg mener bare at jeg ville finde det forvirrende i min kode hvis noget som hed noget med "arr" ikke refererede til et array :o)
Jeg ville hellere lave en
--
Erase arrFiles
--
og så senere
--
if arrFiles(0) <> "" then
  //arrayet indeholder noge
else
  //arrayet er tomt
end if
---
men altså kun fordi jeg ikke ville rende ind i at kode noget hvor jeg tror jeg har et array og det så i mellemtiden måske er blevet til en streng, kunne hurtig give en masse fejl
Avatar billede busschou Praktikant
28. juli 2005 - 12:26 #27
Ellers ville jeg ikke kalde det arrFiles i hvert fald, så ville jeg kalde det _Files eller noget andet
Ligesom jeg ville finde det underligt at lave intAlder om til en streng eller strSQL om til et tal , osv :O)
Avatar billede softspot Forsker
28. juli 2005 - 12:28 #28
Jeg er 100% enig i at man skal lade være med at bruge variable til en hel masse forskellige formål og navngive dem fornuftigt/intuitivt. Jeg synes dog ikke der er noget galt i at tillade at en variabel er uinitialiseret (f.eks. nothing eller empty) og at man kan bruge dette som et kontrolkriterie - det er jo da slet ikke så unormalt endda :)
Avatar billede softspot Forsker
28. juli 2005 - 12:28 #29
og tak for point :)
Avatar billede busschou Praktikant
28. juli 2005 - 12:32 #30
ok nej
Det var fordi der på et tidspunkt stod at der var brug for at konvertere typen til en string for at lave tjekket
Der er forskel på om arrFiles er en string eller et uinitialiseret array i mine øjne
men hvad tror vi er mere eller mindre enige :o)
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