Toon posts:

VB - Directory index 2 database

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ok mense, ff een vraagje, ik wil van 'een' directory alle onderliggende dir(en de subdirs in die dirs) naar een databse schrijven, maar het lukt me maar niet |:(

Als iemand mij daar mee zou kunne helpen....


het is dus de bedoeling als ik me map E:\MP3 heb, met daarin weet ik hoeveel mappen, weg kan schrijven naar een database, maar het is ook de bedoeling als ik bv E:\MP3\TEST\CD1 heb, dat ie de sub dir dus ook pak, en wegschrijft. :?, ik wordt er helemaal gestoord van dat het me niet lukt, dus HELP!!!!!

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 07-09 17:43

Crazy D

I think we should take a look.

[forum=14] lijkt me de place to be als het om een programmeer probleem gaat, maar uh wees eens wat specifieker, met dit weer doet m'n glazen bol het niet zo goed, dus ik zal op een andere manier erachter moeten komen wat je probleem is....
Programmeren van het stuk dat directories doorloopt lukt niet? Of het wegschrijven lukt niet?

Exact expert nodig?


Verwijderd

Topicstarter
Het is de bedoeling dat ik bv van mijn e:\mp3 alle directory's met de subdirectory's weg kan schrijven, het lukt me dus niet om uit een dir de sub dir te halen, het wegschrijven in een database is het probleem niet :?

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 07-09 17:43

Crazy D

I think we should take a look.

Wat voor code gebruik je voor het doorlopen van de directories?
Neem anders hier even een kijkje Enumerating Folders using FindFirstFile & FindNextFile API, Advanced
Het moet niet al te moeilijk zijn deze wat aan te passen om 'm voor jouw situatie bruikbaar te maken.

Exact expert nodig?


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

SA -> P&W

Verwijderd

Topicstarter
Ok, ik zal ff de source eronder neer zetten, het is een beetje klunzig |:( , maar dan begrijp je denk ik mijn probleem wel. ;(

.:: Hier de source ::.

Dim vol, dir, dirgoed, filenaam As String
Dim a As Integer
Dim telrec As Integer

telrec = 0
Drive1.Drive = Drive2
Dir1.Path = Dir2.Path
File1.Path = Dir1
Set dB = OpenDatabase(App.Path & "\data.mdb")
Set rs = dB.OpenRecordset("data")

For i = 0 To Dir1.ListCount - 1
File1.Path = Dir1.List(i)
a = 1

Do
vol = Right$(Dir1.List(i), a)
If Left$(vol, 1) = "\" Then
a = a - 1
dir = Right$(vol, a)
dirgoed = Replace(dir, "'", "_", 1)
Exit Do
End If
a = a + 1
Loop

For z = 0 To File1.ListCount - 1
filenaam = Replace(File1.List(z), "'", "_", 1)
With rs
.AddNew
telrec = telrec + 1
!nummer = filenaam
!cd = dirgoed
!Mee = "JA"
.Update
End With
Next z
Next i
dB.Close

  • ParaNoiMia
  • Registratie: Mei 2000
  • Laatst online: 05-09 11:47
Ik gebruik daarvoor een collection.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
Global MapTree As New Collection

Public Function GetTree(sPathToGet As String) As Boolean

' -------------------------------------------------------------
' Define local variables
' -------------------------------------------------------------
  Dim file_name As String
  Dim files As Collection
  Dim i As Integer

  Dim intAantal As Integer
  
' -------------------------------------------------------------
' Initialize variables
' -------------------------------------------------------------
  Set files = New Collection
  
' -------------------------------------------------------------
' if there is a trailing backslash then remove it.
' -------------------------------------------------------------
  If Right(sPathToGet, 1) = "\" Then
    sPathToGet = Left(sPathToGet, Len(sPathToGet) - 1)
  End If
  
' -------------------------------------------------------------
' Get a list of path & filenames from this folder on down.
' -------------------------------------------------------------
  file_name = Dir(sPathToGet & "\*.*", vbNormal Or vbReadOnly Or vbHidden Or _
                           vbSystem Or vbArchive Or vbDirectory)
    
' -------------------------------------------------------------
' Loop thru the directory structure and add the
' path & filename to the collection.
' -------------------------------------------------------------
  Do While Len(file_name) > 0
    
    If (file_name <> "..") And (file_name <> ".") Then
        ' add to the collection
        files.Add sPathToGet & "\" & file_name
    End If
    
    file_name = Dir()   ' is there anything left?
    DoEvents        ' allow other processes to happen
        
  Loop

' -------------------------------------------------------------
' Loop thru the collection and get the files
' and directories
' -------------------------------------------------------------
  For i = 1 To files.Count
    
    ' move the path & filename to a variable
    file_name = files(i)
    
    ' See if it is a directory.
    If GetAttr(file_name) And vbDirectory Then
        ' This is a directory.
        ' getete everything in it.
        GetTree file_name
    Else
        MapTree.Add file_name
    End If
    
    DoEvents                 ' allow other processes to happen
    
  Next

  
End Function


Sub testje
dim intFiles as integer
dim intTel as integer
GetTree "F:\bla"
intFiles = MapTree.Count
intTel = 1
For intTel = 1 To intFiles

   'Doe iets met MapTree(intTel)
next

Do While MapTree.Count > 0
   MapTree.Remove (1)
Loop

(warning, ff snel geknipt en geplakt en niet getest)

Verwijderd

Topicstarter
Ok, ik ben er ong een klein beetje uit, waar in de source wordt er gecontrolleerd of er in een dir een subdir zit ?? (8>

Verwijderd

L E Z E N Het staat er verdorie zelfs met koeieletters bij!

Verwijderd

Topicstarter
ik moet het anders vragen/zegge, kan iemand dan met dit stukje script iets maken, dat ik in een listview in 1 collom de dirs heb, en als er in dir dir dus een sub staat dat ie niet alleen bv cd2 zegt, maar bv rykers - paybacktime\cd2, en in een 2e collom de files van de desbetreffende map

Verwijderd

Wil je nou programmeren of code cut'n'pasten? :?

Verwijderd

Topicstarter
ben nog niet zo lang bezig met programmeren, dus snap nog niet alles helemaal ok, dus please als je kan helpen graag

  • ParaNoiMia
  • Registratie: Mei 2000
  • Laatst online: 05-09 11:47
Op woensdag 22 mei 2002 20:20 schreef DeVicEofHeLL het volgende:
ik moet het anders vragen/zegge, kan iemand dan met dit stukje script iets maken, dat ik in een listview in 1 collom de dirs heb, en als er in dir dir dus een sub staat dat ie niet alleen bv cd2 zegt, maar bv rykers - paybacktime\cd2, en in een 2e collom de files van de desbetreffende map
Het was al een scriptrequest, je krijgt het grootste gedeelte van de source kant en klaar geleverd, nu is het jouw beurt om weer moeite te doen. Scriptrequest zijn hier namelijk niet de bedoeling...

  • Creepy
  • Registratie: Juni 2001
  • Nu online

Creepy

Tactical Espionage Splatterer

Er staat een compleet voorbeeld, plus commantaar in de code.. maar goed.

Wat precies snap je niet??

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Verwijderd

Ik wou net zeggen ParaNoiMia heeft je 'n prachtig en ook zeer goed gedocumenteerd stuk code gegeven, lijkt me dat je daar zelf maar mee aan de slag moet gaan.

Verwijderd

Topicstarter
OK, ik ga me best doen, in iedergeval bedankt voor het script ParaNoiMia, jullie horen van mij als t gelukt is. 8-)

  • ParaNoiMia
  • Registratie: Mei 2000
  • Laatst online: 05-09 11:47
Zoek es op de msdn of technet site van microsoft of naar voorbeelden op veel andere sites zoals pscode.com. Of koop een basisboek voor Visual Basic, daar leer je veel van :Y)

Verwijderd

Dit voorbeeld gebruikt het VB commando Dir. De API is echter een stuk sneller als Dir. Kun je snel met Google vinden.

Verwijderd

Maarja we willen onze beginner toch niet direct het api-oerwoud insturen toch? laat 'm eerst maar ervaring opdoen met de "standaard vb" manier, kan ie zich altijd nog op api's gaan storen als ie wat snelheid nodig heeft.

Verwijderd

Topicstarter
Ok people's ik heb ut gevonden, ik heb behoorlijk scheef zitten kijken |:(


IEDEREEN BEDANK!!!! 8-)

Verwijderd

Topicstarter
YES!!!! me proggie werkt nu zoals ik het wil, en was niet zonder jullie gelukt, na veel geklooi werkt ut pcies zoals ik het wil, en nog zonder fouten ook B-)

Iedereen die me geholpen heeft TnX *D *D *D *D

  • ParaNoiMia
  • Registratie: Mei 2000
  • Laatst online: 05-09 11:47
Op donderdag 23 mei 2002 21:06 schreef DeVicEofHeLL het volgende:
YES!!!! me proggie werkt nu zoals ik het wil, en was niet zonder jullie gelukt, na veel geklooi werkt ut pcies zoals ik het wil, en nog zonder fouten ook B-)

Iedereen die me geholpen heeft TnX *D *D *D *D
Stuur de taart maar naar het MT van Tweakers.net
[reclame mode]
Die het allemaal voor u mogelijk maakt !
[/reclame mode]

:+

Verwijderd

Topicstarter
Op donderdag 23 mei 2002 23:24 schreef ParaNoiMia het volgende:

[..]

Stuur de taart maar naar het MT van Tweakers.net
[reclame mode]
Die het allemaal voor u mogelijk maakt !
[/reclame mode]

:+
:Y) :Y) :Y)

[Bakker ammerlaan bezorgservice]

1 extra grote taart voor het MT van Tweakers.net *D

[/Bakker ammerlaan bezorgservice]
Pagina: 1