Bericht 1 van 5NL Computer Forum ~ SQL & Programmeren Van | : | Jan101477 | Datum | : | 10-12-2007 |
Aan | : | Peter | MsgID | : | 3663.1 |
Onderwerp | : | MyFile = Dir | Forum | : | 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 5NL Computer Forum ~ SQL & Programmeren Van | : | Peter | Datum | : | 11-12-2007 |
Aan | : | Jan101477 | MsgID | : | 3663.2 |
Onderwerp | : | MyFile = Dir | Forum | : | 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 5NL Computer Forum ~ SQL & Programmeren Van | : | Jan101477 | Datum | : | 11-12-2007 |
Aan | : | Peter | MsgID | : | 3663.3 |
Onderwerp | : | MyFile = Dir | Forum | : | 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 5NL Computer Forum ~ SQL & Programmeren Van | : | Jan101477 | Datum | : | 11-12-2007 | Aan | : | Peter | MsgID | : | 3663.4 | Onderwerp | : | MyFile = Dir | Forum | : | 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 5NL Computer Forum ~ SQL & Programmeren Van | : | Peter | Datum | : | 11-12-2007 |
Aan | : | Jan101477 | MsgID | : | 3663.5 |
Onderwerp | : | MyFile = Dir | Forum | : | ws-nlcomputer |
>>Het probleem is opgelost<<
Mooi.
Groeten, Peter