Hallo

Welkom, Gast. Alsjeblieft inloggen of registreren.

Recent

368 gasten, 0 leden

Welkom, Gast. Alsjeblieft inloggen of registreren.

29 maart 2024, 16:24:48

Login met gebruikersnaam, wachtwoord en sessielengte

Nieuws

Welkom op het vernieuwde NL Computer Forum!

Auteur Topic: MyFile = Dir  (gelezen 6945 keer)

0 leden en 1 gast bekijken dit topic.

Offline NLCOMP

  • Forumheld
  • *****
  • Berichten: 14.666
    • NL Computer Forum
MyFile = Dir
« Gepost op: 9 november 2009, 20:21:11 »
Bericht 1 van 5

NL Computer Forum ~ SQL & Programmeren
 Van:Jan101477Datum:10-12-2007
 Aan:PeterMsgID:3663.1
 Onderwerp:MyFile = DirForum:ws-nlcomputer
Hoi Peter,
Kun jij het volgende verklaren, Ik begrijp het niet:
De volgende routine wordt doorlopen:
MyPath = "F:\AANDLO~1\"
' Bepaal het bestand
MyFile = Dir(MyPath & "*.*")

Do While MyFile ""
  filename = MyPath & MyFile
  OpenFileKoersen (filename)
  If NaamFonds(1) "AEX " And NaamFonds(1) "AMS-D " And  NaamFonds(1) "AMS-A " And NaamFonds(1) "AAMX " And  NaamFonds(1) "AMS-NH " And NaamFonds(1) "AMS-NL " And  NaamFonds(1) "1DJ-30 " And NaamFonds(1) "1SP-500 " And   NaamFonds(1) "02EURUSD" And NaamFonds(1) "GELYK " And  NaamFonds(1) "OI " And NaamFonds(1) "CPRA " And NaamFonds(1) "CPR " And NaamFonds(1) "02TBY30 " And NaamFonds(1) "81NKDOW " And NaamFonds(1) "1VIX " And NaamFonds(1) "1QQQ " Then 
 FondsNaam = NaamFonds(1)
 Call BijwerkenKoersVandaag(FondsNaam)
Else
GoTo 25
End If
' MyFile = Dir
'25 Loop ' Indien deze en de vorige regel erin en de laatste twee eruit dan wel MyFile goed, zonder dat niet
AantalFondsen = 1
For VolgNummer = 0 To 34
Call KeuzeSysteem(VolgNummer, AantalPerioden, AantalPeriodenMA1, AantalPeriodenMA2, AantalPeriodenMA3, WeekFlag, AantalWeken)
Next VolgNummer
GewensteDatum = "gisteren"
Call DatumBepaling(GewensteDatum, BerekendeDatum)
DatumGisteren = BerekendeDatum
Call BijwerkenDagTransacties(AantalOpgehaald, DagTransactieMatrix(), k, DatumGisteren)
FondsenTeller = FondsenTeller + 1
MyFile = Dir
filename = MyPath & MyFile
25 Loop
Als ik de regels 23 en 24 van de code van tekst haal en de laatste 2 regels van de code op tekst zet (waardoor de rest van de code dus niet wordt uitgevoerd) bevat MyFile = Dir steeds het volgende bestand.
Zet ik regels 23 en 24 op tekst en haal de laatste 2 regels van tekst af, dan bevat MyFile steeds niets. In de tussenliggende routines komen geen bestandsbewerkingen voor. Wat zou er desondanks de oorzaak van kunnen zijn dat MyFile = Dir wel goed wordt uitgevoerd in de verkorte versie en niet in de uitgebreidere versie?
Het heeft eerder altijd goed gewerkt en nu plotseling niet meer en ik weet niet waardoor.


Bericht 2 van 5

NL Computer Forum ~ SQL & Programmeren
 Van:PeterDatum:11-12-2007
 Aan:Jan101477MsgID:3663.2
 Onderwerp:MyFile = DirForum:ws-nlcomputer
Hoi Jan,

>>Het heeft eerder altijd goed gewerkt en nu plotseling niet meer en ik weet niet waardoor.<<
Een reden kan zijn dat er toch ergens een Dir() statement uitgevoerd wordt.
Deze stukje code wordt toch niet toevallig nog eens gestart voordat het compleet afgelopen is?

De 1 na laatste regel met  filename = MyPath & MyFile is zowiezo overbodig.
Dat gebeurd bovenaan in de Do...Loop ook.

Doe eens hetvolgende:
Zet een breekpunt op de regel MyPath = "F:\AANDLO~1\" en ook op een programmaregel na Loop
(NB: de lange mapnaam notatie lijkt me wat beter leesbaar)
Start je programma.
Zodra het breekpunt bereikt wordt druk je op F5
Op welk breekpunt stopt ie daarna, het 1e (bij MyPath =) of het 2e (bij Loop)?
Als het eerste breekpunt, dan is er OF een resursieve aanroep OF je programma doet iets verkeerd of te snel.


Verder is het verstandig om programmacode altijd te controleren voordat je hem post of anders in een bijlage aan te leveren. Je code is wat verminkt geraakt door de HTML opmaak in dit forum. Alle <> vergelijkingen zijn namelijk vervallen.


groeten, Peter





Bericht 3 van 5

NL Computer Forum ~ SQL & Programmeren
 Van:Jan101477Datum:11-12-2007
 Aan:PeterMsgID:3663.3
 Onderwerp:MyFile = DirForum:ws-nlcomputer
Peter,
Hopelijk is de code nu wat beter te lezen.
Het programma blijft op de eerste break voor het eerst staan en na F5 blijft het staan op de eerste regel na Loop.
Om te controleren of er een Dir in de lust met VolgNummer voorkomt heb ik een Debug.Print van MyFile gegeven boven in de lus. Dan blijkt dat op de op 1 na laatste regel MyFile nog steeds de naam van het eerste bestand bevat. Door de volgende regel uit te voeren (MyFile = Dir) wordt MyFile leeg.
Ik heb ten overvloede ook nog in de tussenliggende routines gezocht naar een MyFile = Dir, maar niet gevonden.
Dus rara, hoe kan dat?
Jan
Bijlagen :

CodefragmentPeter.txt
2KB


Bericht 4 van 5

NL Computer Forum ~ SQL & Programmeren
 Van:Jan101477Datum:11-12-2007
 Aan:PeterMsgID:3663.4
 Onderwerp:MyFile = DirForum:ws-nlcomputer
Hoi Peter,
Het probleem is opgelost. Ik heb de lus met Volgnummer een voor een op tekst gezet en gekeken of de fout dan weg bleef. Bijna bij het laatste volgnummer had ik beet. In de betreffende routine zat geen Dir maar wel het ophalen van een filename en dat was de oorzaak.
Wederom hartelijk dank voor je assistentie.
Groetjes,
Jan


Bericht 5 van 5

NL Computer Forum ~ SQL & Programmeren
 Van:PeterDatum:11-12-2007
 Aan:Jan101477MsgID:3663.5
 Onderwerp:MyFile = DirForum:ws-nlcomputer
>>Het probleem is opgelost<<
Mooi.


Groeten, Peter