Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi beim speichern gibts ne komische Meldung (https://www.delphipraxis.net/115577-beim-speichern-gibts-ne-komische-meldung.html)

punker-lili 14. Jun 2008 10:02


beim speichern gibts ne komische Meldung
 
Hi Leute!

Ich hab hier ne kleine Procedure entwickelt um ein Parra Daten in ne Textdatei zu speichern. Leider gibt er mir beim Auruf folgende Fehlermeldung: "Project Project1.exxe raised exception class EInOutError with massage 'I/O error 103'. Process stopped." Was bedeutet dieser Fehler und wie kann ich ihn beheben?

Die Procedure:
Delphi-Quellcode:
procedure speichern_text(savedialog1:Tsavedialog;sd_hoehe,sd_laenge:array of integer;sd_takt,sd_v,sd_ende:integer);
var sd_schnitt:Textfile;
    sd:integer;
begin
saveDialog1.execute;
 assignfile(sd_schnitt,savedialog1.filename);
 writeln(sd_schnitt,sd_takt);
 writeln(sd_schnitt,inttostr(sd_v));
 writeln(sd_schnitt,inttostr(sd_ende));
 for sd:=0 to (sd_ende -1) do
   writeln(sd_schnitt,inttostr(sd_hoehe[sd])+ inttostr(sd_laenge[sd]));
 closefile(sd_schnitt)
 end;
Danke schonmalim voraus!

MfG Anna

Der.Kaktus 14. Jun 2008 10:05

Re: beim speichern gibts ne komische Meldung
 
Zitat:

Zitat von punker-lili
Hi Leute!

Ich hab hier ne kleine Procedure entwickelt um ein Parra Daten in ne Textdatei zu speichern. Leider gibt er mir beim Auruf folgende Fehlermeldung: "Project Project1.exxe raised exception class EInOutError with massage 'I/O error 103'. Process stopped." Was bedeutet dieser Fehler und wie kann ich ihn beheben?

Die Procedure:
Delphi-Quellcode:
procedure speichern_text(savedialog1:Tsavedialog;sd_hoehe,sd_laenge:array of integer;sd_takt,sd_v,sd_ende:integer);
var sd_schnitt:Textfile;
    sd:integer;
begin
saveDialog1.execute;
 assignfile(sd_schnitt,savedialog1.filename);
 writeln(sd_schnitt,sd_takt);
 writeln(sd_schnitt,inttostr(sd_v));
 writeln(sd_schnitt,inttostr(sd_ende));
 for sd:=0 to (sd_ende -1) do
   writeln(sd_schnitt,inttostr(sd_hoehe[sd])+ inttostr(sd_laenge[sd]));
 closefile(sd_schnitt)
 end;
Danke schonmalim voraus!

MfG Anna


Hallo,

Delphi-Quellcode:
 rewrite(sd_schnitte); //bzw. append(sd_schnitte)..nach Assignfile..einfuegen

leddl 14. Jun 2008 10:06

Re: beim speichern gibts ne komische Meldung
 
Du hast
Delphi-Quellcode:
rewrite(sd_schnitt);
bzw.
Delphi-Quellcode:
reset(sd_schnitt);
vergessen :zwinker:

Die Muhkuh 14. Jun 2008 10:07

Re: beim speichern gibts ne komische Meldung
 
Hi,

Du musst nach AssignFile noch Rewrite oder Reset aufrufen.

Wichtig ist es noch, dass Du

Delphi-Quellcode:
if SaveDialog1.Execute then
schreibst. Denn bricht der Benutzer den Dialog ab, wird Dein Code trotzdem ausgeführt.

Außerdem würde ich TSaveDialog in der procedure erzeugen und nicht als Parameter übergeben.

SirTwist 14. Jun 2008 10:09

Re: beim speichern gibts ne komische Meldung
 
Morgen,

hat zwar nix mit dem eigentlichen Problem zu tun, aber:

Delphi-Quellcode:
procedure speichern_text(savedialog1:Tsavedialog;sd_hoehe,sd_laenge:array of integer;sd_takt,sd_v,sd_ende:integer);
var sd_schnitt:Textfile;
    sd:integer;
begin
 if saveDialog1.execute then begin
   assignfile(sd_schnitt,savedialog1.filename);
   ...
Warum? Weil die Datei sonst auch gespeichert wird, wenn man im Save-Dialog auf "Abbrechen" geklickt hat. Unschön.

Und zu der unerklärten, aber richtigen Antwort von dem Kaktus: Mit AssignFile ordnest Du nur der File-Variable einen Dateinamen zu, die Datei wird damit noch nicht geöffnet. Das macht erst Rewrite oder Reset. Dann kannst Du darauf schreiben bzw. davon lesen.

Gruß,
Michael

punker-lili 14. Jun 2008 10:11

Re: beim speichern gibts ne komische Meldung
 
Danke!
Also ich hab ne Datei erstellt, und diese wieder gespeichert. Da fällt mir auf das er an zwei Stellen der Wert um 1 erhöht hat!?

Die Muhkuh 14. Jun 2008 10:17

Re: beim speichern gibts ne komische Meldung
 
Zitat:

Zitat von punker-lili
Danke!
Also ich hab ne Datei erstellt, und diese wieder gespeichert. Da fällt mir auf das er an zwei Stellen der Wert um 1 erhöht hat!?

An welchen Stellen hat sich was erhöht?

punker-lili 14. Jun 2008 10:18

Re: beim speichern gibts ne komische Meldung
 
5. und letzte Zeile

punker-lili 14. Jun 2008 10:20

Re: beim speichern gibts ne komische Meldung
 
ich nehms zurück... hab den Fehler gefunden (lag im restlichen Programm) srry... aber denake für die Hilfe! wünsch euch noch nen schönen Tag!

Die Muhkuh 14. Jun 2008 10:20

Re: beim speichern gibts ne komische Meldung
 
Sorry, ich kann Dir nicht ganz folgen.

Wenn Du die Zeilenangabe auf den Code oben beziehst, dann ist die 5. Zeile ein Begin und die letzte Zeile ein End.

Du musst schon etwas genauer beschreiben. :zwinker:

[edit]Jetzt editierst Du das vor meiner Nase weg :stupid: [/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz