Avatar billede jytte Nybegynder
27. august 2003 - 14:18 Der er 18 kommentarer og
2 løsninger

Hvilket library har Scripting.FilSystemObject

Jeg arbejder normalt med ASP

Men har nu brug for at lave et program i Visual Basic.

Jeg synes det ser ud til at man skal inkludere et bibliotek for at få lov til at skrive
CreateObject("Scripting.FileSystemObject")

Men hvordan finder jeg ud at hvilket bibliotek jeg skal bruge ?
Avatar billede peter.erikse Nybegynder
27. august 2003 - 14:21 #1
Under Project, reference skal du tilknytte Microsoft scripting runtime
Avatar billede peter.erikse Nybegynder
27. august 2003 - 14:22 #2
I øvrigt kan du skrive:
Private FSO As scripting.FileSystemObject
Avatar billede jytte Nybegynder
27. august 2003 - 14:23 #3
Vidste du det bare eller kan man søge et eller andet sted hvis jeg får samme problemstilling igen ?
Avatar billede kedde65 Praktikant
27. august 2003 - 14:23 #4
Du behøver ikke referere til noget bibliotek for at skrive CreateObject("Scripting.FileSystemObject")

Men når du bevæger dig inde i VB så er det en fordel at lave den reference som peter skriver. Det giver dig nemlig mulighed for at lave early binding, samt en masse visual hjælp...

Så kan du nemlig skrive

Dim FSO as FileSystemObject
set FSO = new FileSystemObject

VH CK
Avatar billede jytte Nybegynder
27. august 2003 - 14:24 #5
Vil
Private FSO As scripting.FileSystemObject
gøre det unødvendigt at inkludere et bibliotek ?
Avatar billede kedde65 Praktikant
27. august 2003 - 14:25 #6
Nope, kun hvis du skriver

set FSO = createObject("Scripting.FileSystemObject")

Så behøver du ikke lave reference

VH CK
Avatar billede kedde65 Praktikant
27. august 2003 - 14:26 #7
ordet private betyder blot at du ikke kan tilgå det fra andre moduler af. Det har intet med denne sag at gøre - desuden om du skriver Dim FSO eller Private FSO i en formular så har det samme betydning.

VH CK
Avatar billede jytte Nybegynder
27. august 2003 - 14:32 #8
Har jeg forstået jer korrekt

1) Jeg bør tilknytte Microsoft scripting runtime, men skal ikke
2) Priv ate FSO As scripting.FileSystemObject  er en lokal variabel mens
  set FSO = createObject("Scripting.FileSystemObject")  er global ?

Så mangler jeg bare at finde ud af hvornår man skal tilknytte et library og hvordan man generelt finder ud af hvilket library man har brug for
Avatar billede kedde65 Praktikant
27. august 2003 - 14:34 #9
1) Ja
2)Nej. Private er en lokal variabel. Mens

set = fso = ...

er en initialisering af din varibal. Den skal du have med uanset om du bruger lokale eller globale variable.

VH CK
Avatar billede jytte Nybegynder
27. august 2003 - 14:39 #10
ja jeg kopierede den forkerte linie

2) Private FSO As scripting.FileSystemObject;gør FSO til en lokal variabel mens
  Dim FSO as FileSystemObject              gør FSO til en global variabel?

men hvis variabelerklæringerne er inde i funktioner eller procedure er de vel begge lokale ?
Avatar billede kedde65 Praktikant
27. august 2003 - 14:40 #11
Jeps, men private kan kun stå udenfor og så er den lokal for det kodemodul du står i. Dim kan stå inde i en procedure og det gør den til lokal for proceduren. Hvis du skal have en global så skal du skrive public

VH CK
Avatar billede jytte Nybegynder
27. august 2003 - 14:44 #12
AHA ! man kan altså ophøje en variabel til at være global selvom den er erklæret i en funktion. Jeg har svært ved at forestille mig at det skulle være smart ...

Men tilbage til mit egentlige spørgsmål:
hvornår man skal tilknytte et library og hvordan man generelt finder ud af hvilket library man har brug for
Avatar billede kedde65 Praktikant
27. august 2003 - 14:48 #13
Nej nej, det var forkert forstået... hvis du bruger en public variabel, så skal den stå udenfor en funktion/procedure.

Du skal tilknytte et library når du skal bruge nogle funktioner du ikke som standard har liggende i VB. Du skal eksempelvis tilføje Scripting Runtime når du skal bruge FileSystemObject. Hvis du vil udnytte Erarly binding samt de smart features der er i forbindelse med Udviklings miljøet. Alternativt så skal du lade være med at bruge reference og så udføre late binding og undvære hjælpen fra VB IDE'et

Eksempel: (med reference)

dim FSO as FileSystemObject
set fso = new FileSystemObject

prøv så at sætte . efter fso, så kan du se den hjælp der kommer frem om FSO.

uden reference:

dim fso
set fso = createObject("Scripting.Runtime")

VH CK
Avatar billede jytte Nybegynder
27. august 2003 - 14:56 #14
OK public og private bruger man udenfor procedure og funktioner så man kan gøre det muligt/umuligt at tilgå variablerne fra andre moduler. Det er også meget mere logisk end det jeg troede ...

Kan man når man ved at man skal bruge FileSystemObject slå op et eller andet sted og finde ud af at det er Scripting Runtime man skal bruge for at få de ekstra features ?
Avatar billede kedde65 Praktikant
27. august 2003 - 14:57 #15
Ja søg på Google efter FileSystemObject :-)

VH CK
Avatar billede jytte Nybegynder
27. august 2003 - 15:01 #16
Ja :-) , men findes der ikke noget indbygget hjælp i VB -- det burde da være nemmere ?
Avatar billede kedde65 Praktikant
27. august 2003 - 15:04 #17
Du kan selvfølgelig altid bruge MSDN samlingentil at søge efter det. Hvis du ikke har det så brug http://msdn.microsoft.com

VH CK
Avatar billede jytte Nybegynder
27. august 2003 - 15:08 #18
Hvad er MSDN samlingen ? -- følger den med under intallationen og i givet fald hvor finder man den så ?
Avatar billede kedde65 Praktikant
27. august 2003 - 15:09 #19
Den følger ikke med under installationen, det er en 3 gb stor hjælpe fil der kommer særskildt.

VH CK
Avatar billede jytte Nybegynder
27. august 2003 - 15:59 #20
Så siger jeg mange tak for hjælpen.
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