Avatar billede vanni Nybegynder
08. maj 2003 - 08:42 Der er 7 kommentarer og
1 løsning

FileSystemObject metoder hjælp

Hej

Jeg har kigget lidt på spørgsmål vedr. FileSystemObject. Det er nyt for mig og derfor gik jeg ind i hjælp for finde nogle eksempler. Fandt et, satte reference og det virker fint.

Jeg forsøgte forgæves at finde flere nogle metoder, kiggede i object browser... Har set i nogle spørgsmål, at når man har sat referencen op, kan f.eks. skrive fso. og så dukker metoderne op, men ikke hos mig!

Et lille enkelt eksempel på, hvordan man kan se metoderne ville være dejligt, hvis nogen/nogle, der vil hjælpe?

Hilsen Vanni
Avatar billede mortrr Praktikant
08. maj 2003 - 08:50 #1
Dim fso As Scripting.FileSystemObject

Set fso = New Scripting.FileSystemObject

Så skulle den være der. (når du allerede har tilføjet referencen)
Avatar billede martin_moth Mester
08. maj 2003 - 09:28 #2
Husk
  Set fso=Nothing
når du er færdig med at bruge den

Eksempel på brug af fso kan du se her (fx. mit svar af 05/08-2002 15:38:54) www.eksperten.dk/spm/243081
Avatar billede vanni Nybegynder
08. maj 2003 - 18:27 #3
moth> Det er memory leak, det drejer sig om ik?

Mvh Vanni
Avatar billede vanni Nybegynder
08. maj 2003 - 18:29 #4
mortrr> Det var det, det undrede mig bare at eksemplet virkede alligevel.

Mvh Vanni
Avatar billede mortrr Praktikant
08. maj 2003 - 19:34 #5
Du kan sagtens oprette objekter af specifikke typer, uden at dim'e dem, som fx:
Set fso = CreateObject("Scripting.FileSystemObject")

Du behøver såmænd ikke engang at oprette en reference (i project menuen).

Men så mister du VB's code-completion (eller hvad det nu hedder), da VB ikke ved hvad det er for en tingest du har lavet.
Avatar billede martin_moth Mester
08. maj 2003 - 19:48 #6
NB: Det er efter min mening noget sjusk ikke at dim'me variabler og objekter. Derfor har jeg sat VB til at KRÆVE variabel deklaration (under options et sted).

Dermed fås "gratis" ydermere følgende fordele: Der undgås fejl med at man tildeler en variabel en værdi, men fejlagtigt staver variabelnavnet forkert. Herefter vil VB blot oprette en ny variabel med det forkerte navn, og den rigtige variabel tildeles ikke værdien. Fejlen opdages måske ikke umiddelbart - og jeg har set masser af eksempler på folk der oplever netop disse fejl - alt det undgås ved at kræve variabel deklaration :o)

Og jo, det handler om at "rydde op" efter sig mht.
  set Objekt = nothing
Avatar billede mortrr Praktikant
08. maj 2003 - 20:14 #7
martin_moth - jeg mente også snarere uden at Dim'e dem som den specifikke type.

Det er rigeligt at bruge
Dim fso AS Variant

og det kan faktisk hjælpe lidt overfor problemer med specifikke versioner, at man ikke bruger referencer og specifik Dim.

Man kan også selv sætte specifikke programmer/moduler til at kræve Dim, ved at indsætte
Option Explicit
i starten af filerne.

Set Object=Nothing er ikke sååå nødvendig, og specielt ikke hvis man bruger lokale variable.
Det den gør er at fjerne referencen til objektet, hvorved det er op til objektet selv at kalde sin destructor.
Det samme sker når en variabel går ud af scope eller programmet afsluttes.
Det er vigtigere at bruge fx et objects Close metode (hvis man da har åbnet noget:-), men også denne bliver normalt kalde i destructoren.
Avatar billede vanni Nybegynder
08. maj 2003 - 21:11 #8
Tak for svarene begge to.
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