Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Problem beim abspeichern in Datei (https://www.delphipraxis.net/17013-problem-beim-abspeichern-datei.html)

mercanery 26. Feb 2004 21:14


Problem beim abspeichern in Datei
 
Hi folks!

Wir haben im Info-Unterricht n Hangman (Galgenmännchen) programmiert.
Jetz soll sich das Prog die eingegebenen Wörter in iner Datei merken um sie evtl. später zufallsgesteuert als zu ratendes Wort einzulesen.
Unser Lehrer hat uns dazu AssignFile,ReWrite,Write,Read und seek gegeben. Mein jämmerlicher Source dazu sieht so aus:

Delphi-Quellcode:
procedure TFrm_Hangman.speichern(a:Speichertyp);
begin
assignfile(Datei,'woerter.dat');
rewrite(datei);
write(datei,a);
closefile(datei);
end;
(Speichertyp wurde in "type" als String[14] deklariert.)

Jetz will ich aber nat. nicht, dass der immer wieder die datei nueschreibt...wie erreich ichs, dass der die datei nur dann nueschriebt, wenns die auch gibt?mein versuch:
Delphi-Quellcode:
procedure TFrm_Hangman.speichern(a:Speichertyp);
begin
assignfile(Datei,'woerter.txt');
if not fileexists('woerter.txt')
    then rewrite(datei);
write(datei,a);
closefile(datei);
end;
aber da krieg ich gesagt: "Dateizugrif verweigert."

Hoffe ihr könnt mir helfen... :dp:

Luckie 26. Feb 2004 21:17

Re: Problem beim abspeichern in Datei
 
Wenn du nur anhängen willst, kuck dir mal in der Hilfe Append an. Desweiteren empfehle ich dir einen absoluten Pfad zur datei anzugeben. Das was du machts ist Roulette. ;)

empanyc 26. Feb 2004 21:33

Re: Problem beim abspeichern in Datei
 
Bei deiner 2. Prozedur wird die Datei, wenn sie vorhanden ist ja garnicht geöffnet!

Man macht des im allgemeinen so:

Delphi-Quellcode:
assignfile(f, 'datei.dat');
{$I-}
reset(f);
{$I+}
if ioresult <> 0 then rewrite(f);
write(f, a);
closefile(f);
So hab ichs zumindest damals mit Turbo Pascal gelernt.

gruß
Mario

Luckie 26. Feb 2004 21:43

Re: Problem beim abspeichern in Datei
 
Komisch, ich bin hier mit bisher immer ganz gut gefahren:
Delphi-Quellcode:
  AssignFile(f, Filename);
  { if exits open it }
  if FileExists(Filename) then
  begin
    //FileMode := fmShareExclusive;
    Reset(f);
  end
  { if not rewrite it }
  else
  begin
{$I-}
    Rewrite(f);

empanyc 26. Feb 2004 21:49

Re: Problem beim abspeichern in Datei
 
Was wäre, wenn die Datei existiert, du aber keine Leserechte hast?

Ist zwar ne Spitzfindigkeit, aber ...

EDIT: Gut, dann könnt man bei mir bringen, wenn die Datei nicht existiert und
man keine Schreibrechte im Verzeichnis hat...

Luckie 26. Feb 2004 21:51

Re: Problem beim abspeichern in Datei
 
Das kann ich auch. :mrgreen: Was passiert bei dir, wenn du keine Schreibrechte hast? :tongue: Also, es geht doch nur ums Prinzip, dass ich dafür keinen wasserdichten Code entwickle dürfte klar sein. darum hat sich der Programmierer dann noch selber zu kümmern.

mercanery 26. Feb 2004 21:52

Re: Problem beim abspeichern in Datei
 
wenn ich reset benutze wird die datei doch auch neugeschrieben...

Luckie 26. Feb 2004 21:55

Re: Problem beim abspeichern in Datei
 
Nein, es ist Roulette wo deine Datei abgespeicherrt wird, nämlich im gerade aktuellen Verzeichnis und das muss nicht ztwingen dein Anwendungsverzeichnis sein. Wo soll sie denn liegen? Im Programmordnder? Den Pfad deiner Anwending bekommst du mit ParamStr(0)

Datei vom Typ Struing[14]? Zeig mal Code, darunter kann ich mir nichts vorstellen.

mercanery 26. Feb 2004 21:57

Re: Problem beim abspeichern in Datei
 
Liste der Anhänge anzeigen (Anzahl: 1)
IHR---HABT---ES---NICHT---ANDERS GEWOLLT!!!



[edit=thomasdrewermann]Code in den Anhang gepackt Mfg, thomasdrewermann[/edit]

Luckie 26. Feb 2004 21:58

Re: Problem beim abspeichern in Datei
 
Zitat:

Zitat von mercanery
wenn ich reset benutze wird die datei doch auch neugeschrieben...

Hilfe lesen zu reset und rewrite.

Und würdest du bitte aufhören, deine Psotings nachträglich komplett zu ändern?


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:19 Uhr.
Seite 1 von 2  1 2      

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