Avatar billede f2f4 Novice
23. februar 2005 - 09:43 Der er 13 kommentarer og
1 løsning

Brug af writeln vedr. consol application

Jeg har lavet en mindre 'konsol applikation' til at køre nogle testkørsler.

Jeg benytter 'writeln' til (i en dos prompt) at give nogle status meddelser.

En gang imellen virker det ikke, writeln linierne kommer med en 'I/O error 103'. Jeg er ret sikker på at det er fordi den 'nogle gange'/pludselig tror 'writeln' en en procedure vedr. fil adgang!

Hvordan mon man undgår dette?

Mvh. Morten
Avatar billede arne_v Ekspert
23. februar 2005 - 10:36 #1
Har du mange filer åbent samtidigt ?

Er det en multithreaded app ?
Avatar billede f2f4 Novice
23. februar 2005 - 16:42 #2
Det er ikke en multithreaded app.
Filer åbent samtidig? Jeg har kun én indput og én outfil 'åben', outputfilen 'assign'es direkte mens indputfilen indlæses vha. nogte stream objekte. Hele indput indlæses i et objekte hierarki (og lukkes igen) inden der arbejdes på objekterne.
Hvis fejlen opstår bliver den ved til jeg har genstartet Delphi (5).

PS. Er først tilbage (her) igen i morgen!
Avatar billede f2f4 Novice
23. februar 2005 - 16:45 #3
'Fejlen' er ikke vital da det er min eget testprogram, men det er da trals!! (-;
Avatar billede kammeyer Nybegynder
24. februar 2005 - 03:09 #4
Er der ikke noget med at man kan skrive
writeln(con, ......);
for at få det til "consolen" ? Tror det er en defineret standard.

I/O Error 103: File not open.

tjek evt. om du har en procedure der lukker outputfilen før tid ...
Avatar billede arne_v Ekspert
24. februar 2005 - 07:25 #5
writeln(output,'noget');

svarer til:

writeln('noget');

i standard Pascal (ved ikke med Delphi).

Du mener om han laver en:

Close(output);

?
Avatar billede kammeyer Nybegynder
24. februar 2005 - 08:37 #6
ja sådan noget lignende ...
Avatar billede f2f4 Novice
24. februar 2005 - 10:11 #7
writeln(con, ....); - jeg vil mene dette ville virke logisk men det virker ikke og jeg har ikke lige fundet noget om dette!

I/O Error 103: Problemet er at jeg med den linie der trigger denne fejlbesked, mener writeln til consolen og ikke filen. Så det burde være lige meget og filen er lukket eller ej.

Faktisk kommer fejlen inden filen overhovedet skal åbnes idet jeg ønsker en cdonsol.writeln inden da.
Avatar billede f2f4 Novice
24. februar 2005 - 10:17 #8
Fejlen opstår allerede i programmets 2. linie:

if (ParamCount <> 4) then
begin
  writeln(, 'DllTest er et lille program til automatisk dll tests af XXX''s filer.'+#13#10);
  ::
Avatar billede f2f4 Novice
24. februar 2005 - 10:18 #9
tastefejl - selvfølgelig:
writeln('DllTest er et lille program til automatisk dll tests af XXX''s filer.'+#13#10);
Avatar billede hrc Mester
28. februar 2005 - 22:57 #10
Kan det tænkes at du streamer en EOF-karakter der lukker din fil? Den næste skrivning til filen vil returnere en 103'er.
Avatar billede f2f4 Novice
01. marts 2005 - 08:49 #11
>hrc: Tror ikke du har læst spørgsmålet (-; ovenstående writeln er til consolen og ikke en fil ... så der 'skal' ikke være en åben fil.
Avatar billede hrc Mester
01. marts 2005 - 08:57 #12
Næh. Du har ret, jeg havde ikke læst spg. ordentligt, men kan det alligevel ikke tænkes at du streamer noget skidt til con?

Må vi se mere af din kode?
Avatar billede f2f4 Novice
01. marts 2005 - 10:37 #13
Jaah - lidt - det er somsagt en del af et større projekt så det er begrænset hvor meget jeg kan vise. Men 'projektfilen' kan nu ses her: http://www.mortenrasmussen.net/d5/dlltest.txt

Noget af det kan sikkert ikke forstås men det skulle være den nederste begin-end der er interesant og den er (forhåbentlig (-;) forståelig!?

Det er somnævnt 2. linie der 'driller' skal vi sige 1 ud af 10 gange!!! Mystisk fejl synes jeg.
Avatar billede f2f4 Novice
06. juni 2005 - 10:07 #14
Der kom ingen yderligere kommentarer så spørgtsmålet lukkes!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester