Hallo,
Zitat:
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var x : Integer;
datei : TextFile;
pfad : String;
begin
pfad := JvDirectoryEdit1.Directory;
x := 1;
AssignFile(datei, pfad +'\'+ 'datei'+ IntToStr(x) + '.txt');
If not FileExists(pfad +'\'+ 'datei'+ IntToStr(x) + '.txt') then
begin
Rewrite(datei);
CloseFile(datei);
end
else
x := x+1;
AssignFile(datei, pfad +'\'+ 'datei'+ IntToStr(x) + '.txt');
Rewrite(datei);
CloseFile(datei);
end;
Zitat:
Meine Zählervariable (x) habe ich global deklariert und initialisiert,und ich muß sagen,es hat funktioniert.
Nö, glaube ich nicht, dass das funktioniert
Delphi-Quellcode:
var
x : Integer; // hier rein
procedure TForm1.Button3Click(Sender: TObject);
var // x : Integer; hier raus
datei : TextFile;
pfad : String;
begin
pfad := JvDirectoryEdit1.Directory;
x := 1;
AssignFile(datei, pfad +'\'+ 'datei'+ IntToStr(x) + '.txt');
If not FileExists(pfad +'\'+ 'datei'+ IntToStr(x) + '.txt') then
begin
Rewrite(datei);
CloseFile(datei);
end
else
x := x+1;
AssignFile(datei, pfad +'\'+ 'datei'+ IntToStr(x) + '.txt');
Rewrite(datei);
CloseFile(datei);
end;
Starte Dein Programm, wähle einen Ordern, der noch vollkommen jungfräulich ist (zur Not anlegen) und klick zweimal auf den Button. Im gewählten Ordner sollten nun die Dateien:
Datei1.txt
Datei2.txt
liegen.
Öffne die "Datei2.txt" mit einem Texteditor (z. B. mit Notepad). Schreibe einen beliebigen Text (gerne: "Hallo Welt!") und schließe den Texteditor - speichern nicht vergessen. Starte Dein Programm und klick einmal auf den Button. Öffne die Datei "Datei2.txt" und wundere Dich nicht, wenn da nix mehr drin steht.
Zitat:
Warum funktioniert es nur dann,wenn die Variable global deklariert ist....???
Es funktioniert bestens, wenn die Zählvariable lokal (und bitte nur lokal) deklariert wird! Uwe Raabe und hathor habe Dir bereits alle notwendigen Hinweise und auch Code geliefert. Du kannst Deine Methode Button3Click auch so oder ähnlich ändern:
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var
datei : TextFile;
pfad : string;
s : string;
x : Integer;
begin
pfad := JvDirectoryEdit1.Directory;
x := 1;
repeat
s := pfad + '\' + 'datei' + IntToStr (x) + '.txt';
if not FileExists (s) then
begin
AssignFile (datei, s);
Rewrite (datei);
CloseFile (datei);
Break
end;
Inc (x)
until False
end;
Gruß