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

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Hjælp til FSO getfolder
Fra : Neo


Dato : 27-10-03 12:12

Hej alle

Jeg har fundet følgende kode på nettet, men jeg har lige et problem med
den - håber at der er en der gider hjælpe mig videre !

*****************************************

'option explicit ' <<<< det er den her den er gal med !!

Private Sub form_load()

Dim objFileSystem As FileSystemObject, objFolder As Folder
Dim sBuff As String

Set objFileSystem = New FileSystemObject
Set objFolder = objFileSystem.GetFolder("C:\")

For Each Folder In objFolder.SubFolders
sBuff = Folder.Name 'Do whatever you want with the subfolders
Next

' Display the names in C:\ that represent directories.
MyPath = "c:\" ' Set the path.
MyName = Dir(MyPath, vbDirectory) ' Retrieve the first entry.
Do While MyName <> "" ' Start the loop.
' Ignore the current directory and the encompassing directory.
If MyName <> "." And MyName <> ".." Then
' Use bitwise comparison to make sure MyName is a directory.
If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
debug.print MyName ' Display entry only if it
End If ' it represents a directory.
End If
MyName = Dir ' Get next entry.
Loop

End Sub

*****************************************

altså ... den fungerer godt nok ved at printe navne på alle underbiblioteker
i c:\, men den opfører sig helt tosset hvis jeg skriver "option explicit" i
den aller første linie .... hvad skyldes det ? .. nogen bud ?

Mvh Neo



 
 
Jens Vestergaard (27-10-2003)
Kommentar
Fra : Jens Vestergaard


Dato : 27-10-03 12:17

"Neo" <neo___dk@hotmail.removethis.com> skrev i en meddelelse
news:3f9cfc9a$0$45337$edfadb0f@dread11.news.tele.dk...
> Hej alle
>
> Jeg har fundet følgende kode på nettet, men jeg har lige et problem med
> den - håber at der er en der gider hjælpe mig videre !
>
> *****************************************
>
> 'option explicit ' <<<< det er den her den er gal med !!
>
Option Explicit hører hjemme i General/Declarations i et (form)modul - ikke
i hændensesprocedurerne, så hvis du skriver Option Explicit i Form_Load, går
det galt.

Option Explicit betyder, at alle dine variabler skal være deklareret, før du
kan bruge dem - formålet er bl.a. at du kan afsløre, hvis du staver en
variabel forkert (med mindre, at du staver den SÅ forkert, at den bliver til
en anden variabel...)

*Med* Option Explicit får du en fejl i denne kode:

Dim mitNavn As String
mitNavn = "Jens"
mitMavn = mitNavn & " Vestergaard"
MsgBox mitNavn

- eftersom variablen mitMavn ikke er deklareret

*Uden* Option Explicit havde du ikke fået en fejl, men kunne sidde længe og
undre dig over, at MsgBox'en kun indeholdt "Jens"

--
mvh
Jens Vestergaard (mailadr i dette indlæg er ikke gyldig!)
www.railsoft.dk
Døgnets jernbanenyheder: www.railsoft.dk/medier.asp





Neo (27-10-2003)
Kommentar
Fra : Neo


Dato : 27-10-03 12:39

Hej Jens ... og tak for dit super hurtige svar !

du skrev følgende:

"Jens Vestergaard" <j@railsoft.dk> skrev i en meddelelse
news:3f9cfe99$0$30075$edfadb0f@dtext01.news.tele.dk...
> "Neo" <neo___dk@hotmail.removethis.com> skrev i en meddelelse
> news:3f9cfc9a$0$45337$edfadb0f@dread11.news.tele.dk...
> > Hej alle
> >
> > Jeg har fundet følgende kode på nettet, men jeg har lige et problem med
> > den - håber at der er en der gider hjælpe mig videre !
> >
> > *****************************************
> >
> > 'option explicit ' <<<< det er den her den er gal med !!
> >
> Option Explicit hører hjemme i General/Declarations i et (form)modul -
ikke
> i hændensesprocedurerne, så hvis du skriver Option Explicit i Form_Load,
går
> det galt.

Jamen "option explicit" er jo skrevet i General/Declarations .... er den
ikke ?

> Option Explicit betyder, at alle dine variabler skal være deklareret, før
du
> kan bruge dem - formålet er bl.a. at du kan afsløre, hvis du staver en
> variabel forkert (med mindre, at du staver den SÅ forkert, at den bliver
til
> en anden variabel...)

[Snip noget]

> mvh
> Jens Vestergaard (mailadr i dette indlæg er ikke gyldig!)

Jeg paster lige hele koden i form1

Option Explicit

Private Sub Form_Load()
Call test
End Sub

Private Sub test()

Dim objFileSystem As FileSystemObject, objFolder As Folder
Dim sBuff As String

Set objFileSystem = New FileSystemObject
Set objFolder = objFileSystem.GetFolder("C:\")

For Each Folder In objFolder.SubFolders '<<<<<<<<<<<<<<< der meldes
"Compile error variable not defined" her og "Folder" er markeret
sBuff = Folder.Name 'Do whatever you want with the subfolders
Next

' Display the names in C:\ that represent directories.
MyPath = "c:\" ' Set the path.
MyName = Dir(MyPath, vbDirectory) ' Retrieve the first entry.
Do While MyName <> "" ' Start the loop.
' Ignore the current directory and the encompassing directory.
If MyName <> "." And MyName <> ".." Then
' Use bitwise comparison to make sure MyName is a directory.
If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
Debug.Print MyName ' Display entry only if it
End If ' it represents a directory.
End If
MyName = Dir ' Get next entry.
Loop

End Sub



Harald Staff (27-10-2003)
Kommentar
Fra : Harald Staff


Dato : 27-10-03 13:23

Følgende er ikke deklareret:
MyPath
MyName

Følgende er feil -reservert ord i VB:
Folder (i For Each ...)

Rettet:

Private Sub test()
Dim objFileSystem As FileSystemObject
Dim objFolder As Folder
Dim DenFolder As Folder
Dim MyPath As String
Dim MyName As String
Dim sBuff As String

Set objFileSystem = New FileSystemObject
Set objFolder = objFileSystem.GetFolder("C:\")

For Each DenFolder In objFolder.SubFolders
sBuff = DenFolder.Name 'Do whatever you want with the subfolders


--
HTH. Beste hilsen Harald
Followup to newsgroup only please



Neo (28-10-2003)
Kommentar
Fra : Neo


Dato : 28-10-03 09:26


"Harald Staff" <innocent@enron.invalid> skrev i en meddelelse
news:bnj2o0$2ms$1@services.kq.no...
> Følgende er ikke deklareret:
> MyPath
> MyName
>
> Følgende er feil -reservert ord i VB:
> Folder (i For Each ...)
>
> Rettet:
>
> Private Sub test()
> Dim objFileSystem As FileSystemObject
> Dim objFolder As Folder
> Dim DenFolder As Folder
> Dim MyPath As String
> Dim MyName As String
> Dim sBuff As String
>
> Set objFileSystem = New FileSystemObject
> Set objFolder = objFileSystem.GetFolder("C:\")
>
> For Each DenFolder In objFolder.SubFolders
> sBuff = DenFolder.Name 'Do whatever you want with the subfolders
>
>
> --
> HTH. Beste hilsen Harald
> Followup to newsgroup only please

Tak for hjælpen Harald ! ...

Neo



Harald Staff (28-10-2003)
Kommentar
Fra : Harald Staff


Dato : 28-10-03 20:12

Velbekomme Neo. Lykke til med revolusjonen.

Beste hilsen Harald
Followup to newsgroup only please.

"Neo" <neo___dk@hotmail.removethis.com> wrote in message
news:3f9e2727$0$45342$edfadb0f@dread11.news.tele.dk...
>
> Tak for hjælpen Harald ! ...
>
> Neo
>
>



Neo (29-10-2003)
Kommentar
Fra : Neo


Dato : 29-10-03 11:14


"Harald Staff" <innocent@enron.invalid> skrev i en meddelelse
news:bnmf2a$p2p$1@services.kq.no...
> Velbekomme Neo. Lykke til med revolusjonen.

*GG*

Neo



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste