|
| |
Home Up
schijf IO probleem
Ik gebruik de volgende procedure om een listbox te vullen met een lijst van jpg en bmp bestanden
Procedure FillComboBoxFileName;
var
srFiles : TSearchRec;
begin
FindFirst ('.\'+PictureDir+'*.*', $10, srFiles);
repeat
if copy(srFiles.Name,Length(srFiles.Name) - 2, 3) = 'bmp'
then frmEdit.cmbxFileName.Items.Add (srFiles.name)
else if copy(srFiles.Name,Length(srFiles.Name) - 2, 3) = 'jpg'
then frmEdit.cmbxFileName.Items.Add (srFiles.name);
until FindNext(srFiles) <> 0;
end;
Dit werkt prima. de procedure wordt aangeroepen bij het maken van het form. Nu heb ik Install Shield Express gebruikt
om een installatie programma te maken. Als ik nu het programma voor de eerste keer start wordt de combobox niet gevuld,
terwijl de dir bestaat en er toch echt bestanden in staan.
Daarnaast maak ik ook gebruik van de volgende code om een bestand op schijf op te slaan. Dit geeft de eerste keer dat
ik het programma start een "invalid filename" foutmelding krijg. De tweede keer dat ik het programma start werkt alles
prima
function SaveProductFile : boolean;
begin
sFilename := DataDir + FILE_NAME_PRODUCTS;
Assignfile (ProductsFile, sFilename);
Rewrite (ProductsFile);
...
CloseFile (ProductsFile);
Ik snap er niets van. Als het bestand niet zou bestaan, zou Rewrite gewoon de file creeeren, dat is het niet.
Iemand ideeen wat het wel is?
BVD
Major
--
Lastig zoiets..........
FillComboBoxFileName : Het lijkt dat de eerste keer, of de procedure niet wordt aangeroepen, of dat findfirst niets
oplevert. Probeer dit eens middels 'debug'-showmessage berichten o.i.d. te achterhalen....
invalid filename : zie te achterhalen wat die filenaam dan wel is (in showmessage bijv.) en wellicht zecht dit dan meer....
Hans
--
bedankt voor je antwoord. Laat, maar toch bedankt. Ik heb inmiddels een oplossing gevonden, al is hij niet
programmeertechnisch. Waarschijnlijk dat er meer mensen zulke problemen hebben/krijgen, dus ik zal e.e.a. even uit de
doeken doen:
Na de installatie die ik met behulp van Install Shield Express heb gemaakt, kon mijn programma de nieuw gemaakte directories
niet lezen. Het lijkt erop dat de eerste keer dat de dirs worden aangesproken om te lezen niet goed gaat. Ik heb dit met
meerdere file IO procedures getest, allen met hetzelfde resultaat.
Dit probleem oplossen is vrij eenvoudig. Gebruik hiervoor de standaard methode van windows om problemen op te lossen:
de computer opnieuw opstarten. Het blijkt dat als ik na installatie de computer opnieuw opstart, de directories wel herkent
worden. In ieder geval, alles werkt zoals het zou moeten doen.
Aangezien er een groot aantal programma's is dat een reboot vereisen na installatie, is dit echt een "slechte" oplossing.
|