🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: be.comp.programming
7 messages
7 total messages Started by Sven Daems Tue, 18 Nov 2003 18:36
Visual Basic probleem
#3621
Author: Sven Daems
Date: Tue, 18 Nov 2003 18:36
62 lines
3307 bytes
Beste

Ik ben bezig met een programmatje te schrijven in Visual Basic waarbij
je 2 bepaalde mappen kunt synchroniseren.

Op't formulier staat ��n Listbox (list1), ��n FileListBox (file1), ��n
DirListBox (Dir1) en ��n DriveListBox (Drive1)

De drive, dir & filelistbox zijn gekoppelt aan elkaar. Als de drive of
de dir veranderd, veranderen de dirlistbox en de filelistbox ook.
Vanaf de filelistbox veranderd voert de pc de public sub
File1_pathChange() uit. Deze wordt ook uitgevoerd als 't forum geladen
wordt (want dan veranderd het filelistbox ook, van nix naar de inhoud
van de standaard folder).

In de listbox moet eigenlijk hetzelfde komen te staan als in de
FileListbox, maar achter de bestanden moet ook komen te staan wanneer
ze voor het laatst veranderd zijn, (DateLastModified).

In file1_PathChange wordt eerst de listbox leeg gemaakt, vervolgens
wordt er in de variable Aantal het aantal lijnen gezet dat de
FileListbox telt (= het aantal bestanden in de betreffende map), de
variable nummer wordt op 0 gezet (0 omdat dat de eerste lijn is van de
listbox). Er wordt dan een for next lus gedaan, evenveel als er
bestanden in de map staan.  Voor elk bestand wordt de laaste datum
opgezocht en die datum wordt samen met de bestandsnaam geplaatst in de
listbox.

De 2 regeltjes:
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFile(info)
heb ik gevonden via MSDN. Ik weet dat ze dienen om aan
DateLAstModified te komen, maar de exacte uitleg ervan snap ik niet.

In ieder geval, de eerste keer als die public sub wordt uitgevoerd
(als het forum geladen wordt, 'k heb ook al geprobeert het aan een
knop te koppelen, dus niet als't forum geladen wordt maar dan hebk't
zelfde probleem) voert de pc alles correct uit. Maar vanaf ik de dir
verander, dus de filelistbox veranderd dan ook, krijg ik fout 53 'File
Not Found' en bij debug duid hij de regel
"Set f = fs.GetFile(info)"
aan.

Weet iemand hier een oplossing voor?

Met vriendelijke Groeten

Sven Daems

public Sub File1_PathChange()
List1.Clear
Aantal = File1.ListCount
Nummer = 0
For X = 1 To Aantal
    Bestand = File1.List(Nummer)
    info = Dir1.Path & File1.List(Nummer)
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFile(info)
    List1.AddItem Bestand & " " & f.DateLastModified
    Nummer = Nummer + 1
Next X
End Sub
Re: Visual Basic probleem
#3623
Author: TRAX
Date: Tue, 18 Nov 2003 20:43
3 lines
1400 bytes
denk niet dat het aan dit stukje code ligt maar aan het opvullen van de
listbox wanneer je elders de directory verandert, misschien die event
handler eens posten?
Re: Visual Basic probleem
#3627
Author: degi
Date: Wed, 19 Nov 2003 01:22
68 lines
3874 bytes
Na de eerste keer de listbox leegmaken, en alleen je dir laten staan.



"Sven Daems" <cyberbike9@hotmail.com> schreef in bericht
news:2e1f916.0311181036.631dbb2c@posting.google.com...
> Beste
>
> Ik ben bezig met een programmatje te schrijven in Visual Basic waarbij
> je 2 bepaalde mappen kunt synchroniseren.
>
> Op't formulier staat ��n Listbox (list1), ��n FileListBox (file1), ��n
> DirListBox (Dir1) en ��n DriveListBox (Drive1)
>
> De drive, dir & filelistbox zijn gekoppelt aan elkaar. Als de drive of
> de dir veranderd, veranderen de dirlistbox en de filelistbox ook.
> Vanaf de filelistbox veranderd voert de pc de public sub
> File1_pathChange() uit. Deze wordt ook uitgevoerd als 't forum geladen
> wordt (want dan veranderd het filelistbox ook, van nix naar de inhoud
> van de standaard folder).
>
> In de listbox moet eigenlijk hetzelfde komen te staan als in de
> FileListbox, maar achter de bestanden moet ook komen te staan wanneer
> ze voor het laatst veranderd zijn, (DateLastModified).
>
> In file1_PathChange wordt eerst de listbox leeg gemaakt, vervolgens
> wordt er in de variable Aantal het aantal lijnen gezet dat de
> FileListbox telt (= het aantal bestanden in de betreffende map), de
> variable nummer wordt op 0 gezet (0 omdat dat de eerste lijn is van de
> listbox). Er wordt dan een for next lus gedaan, evenveel als er
> bestanden in de map staan.  Voor elk bestand wordt de laaste datum
> opgezocht en die datum wordt samen met de bestandsnaam geplaatst in de
> listbox.
>
> De 2 regeltjes:
>     Set fs = CreateObject("Scripting.FileSystemObject")
>     Set f = fs.GetFile(info)
> heb ik gevonden via MSDN. Ik weet dat ze dienen om aan
> DateLAstModified te komen, maar de exacte uitleg ervan snap ik niet.
>
> In ieder geval, de eerste keer als die public sub wordt uitgevoerd
> (als het forum geladen wordt, 'k heb ook al geprobeert het aan een
> knop te koppelen, dus niet als't forum geladen wordt maar dan hebk't
> zelfde probleem) voert de pc alles correct uit. Maar vanaf ik de dir
> verander, dus de filelistbox veranderd dan ook, krijg ik fout 53 'File
> Not Found' en bij debug duid hij de regel
> "Set f = fs.GetFile(info)"
> aan.
>
> Weet iemand hier een oplossing voor?
>
> Met vriendelijke Groeten
>
> Sven Daems
>
> public Sub File1_PathChange()
> List1.Clear
> Aantal = File1.ListCount
> Nummer = 0
> For X = 1 To Aantal
>     Bestand = File1.List(Nummer)
>     info = Dir1.Path & File1.List(Nummer)
>     Set fs = CreateObject("Scripting.FileSystemObject")
>     Set f = fs.GetFile(info)
>     List1.AddItem Bestand & " " & f.DateLastModified
>     Nummer = Nummer + 1
> Next X
> End Sub
Re: Visual Basic probleem
#3631
Author: Sven Daems
Date: Wed, 19 Nov 2003 22:17
40 lines
2326 bytes
Hieronder vind je al de andere code die in't formulier te vinden is:

Private Sub Form_Load()
    'C:\ wordt automatisch geselecteerd
    Dir1.Path = "C:\"
    'in de textbox wordt de dir (bij't loaden dus C:\) geplaatst
    Text1.Text = Dir1.Path
End Sub

Private Sub Dir1_Change()
    'Het path van de FileListBox wordt aangepast aan die van de DirListBox
    File1.Path = Dir1.Path
    'in de textbox wordt het path geplaatst
    Text1.Text = Dir1.Path
End Sub

Private Sub Drive1_Change()
    On Error GoTo Err_Drive1_Change
    Oorspronkelijk1 = Dir1.Path
    Dir1.Path = Drive1.Drive
Exit_Drive1_Change:
        Exit Sub
Err_Drive1_Change:
        MsgBox Err.Description
        'Dient om de oorspronkelijke dir terug te zetten (als je bv A:\
selecteerd en er zit geen diskette in, dan krijg je eerst de foutmelding en
dan terug de vorige dir)
        Drive1.Drive = Oorspronkelijk
        Resume Exit_Drive1_Change
End Sub


"TRAX" <Stijn.Verspeet@pandora[delete.this].be> wrote in message
news:gwvub.30667$_n2.995358@phobos.telenet-ops.be...
> denk niet dat het aan dit stukje code ligt maar aan het opvullen van de
> listbox wanneer je elders de directory verandert, misschien die event
> handler eens posten?
>
>
>
Re: Visual Basic probleem
#3632
Author: Sven Daems
Date: Wed, 19 Nov 2003 22:20
10 lines
1345 bytes
"degi" <degi@home.nl> wrote in message
news:bpegkj$hh9$1@news2.tilbu1.nb.home.nl...
> Na de eerste keer de listbox leegmaken, en alleen je dir laten staan.

Heu? Dat gebeurt toch al, als ik mij niet vergis?

Public Sub File1_PathChange()
List1.Clear
...
End Sub
Re: Visual Basic probleem
#3636
Author: Gijs Beukenoot
Date: Thu, 20 Nov 2003 09:56
22 lines
1839 bytes
"Sven Daems" <cyberbike9@hotmail.com> schreef in bericht
news:2e1f916.0311181036.631dbb2c@posting.google.com...
> Beste
>
<KNIP>

Dat komt omdat je de variabele 'info' vult met de inhoud van de dirlistbox
en daarachter de filenaam ZONDER dat je eerst een backslash achter de dir
zet...

Dus in text1 staat "C:"
de directory die je kiest is "TMP"
dan wordt de filelist netjes gevuld, en stel je eerste bestand heet
"FIETS.TXT" dan krijg je met de volgende regel code
info = Dir1.Path & File1.List(Nummer)
een variabele info die gevuld is met "C:\TMPFIETS.TXT"

Dus verander het in (bijvoorbeeld) :
info = Dir1.Path & "\" & File1.List(Nummer)

en de magie zal geschieden...
Re: Visual Basic probleem
#3638
Author: Sven Daems
Date: Thu, 20 Nov 2003 12:43
6 lines
1327 bytes
JABADABADOE!! Dankjewel Gijs. Dat was dus de fout en je oplossing werkt dus
perfect.

> Dat komt omdat je de variabele 'info' vult met de inhoud van de dirlistbox
> en daarachter de filenaam ZONDER dat je eerst een backslash achter de dir
> zet...
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads