[edit]
ahhh stimmt, das FileCreate, welches nie geschlossen wird, hab ich übersehn.
man wertet sofort aus, und hofft nicht, daß zwischendrin nix passiert (oder man verwendet einen Resourcenschutzblock)
Delphi-Quellcode:
CreateDir(Path + 'Pics\');
Auswertung:= FileCreate(Path + Datenbank);
if Auswertung = INVALID_HANDLE_VALUE then
begin
ShowMessage('Datenbank konnt nicht erstellt werden.' + sLineBreak
+ 'Eine Lösung wäre vielleicht, das Programm als Administrator zu starten.');
end else
CloseHandle(Auswertung);
Exit;
außerdem könnte ein bissl "ordentliche" Fehlerbehandlung nicht schaden
Delphi-Quellcode:
const LDB : String = 'LampenDB.txt';
function Auslesen(Datenbank: string):TStringArray;
var f: Textfile;
a, Auswertung: integer;
Zeile: TStringArray;
Path: String;
begin
Zeile:= Nil;
Path:= extractfilepath(paramStr(0)) + 'LampenDB\';
if DirectoryExists(Path) = False then //Wenn Pfad nicht angelegt ist
begin
CreateDir(Path);
CreateDir(Path + 'Pics\');
Auswertung:= FileCreate(Path + Datenbank);
if Auswertung = INVALID_HANDLE_VALUE then
begin
ShowMessage('Datenbank konnt nicht erstellt werden.' + sLineBreak
+ 'Eine Lösung wäre vielleicht, das Programm als Administrator zu starten.');
end else
CloseHandle(Auswertung)
Exit;
end;
AssignFile(f,Path + Datenbank); //Die daten aus dem Dokument werden in die Variable f "geschoben"
reset(f); //Geht an anfang der variable f
{$I-}
A:= 0;
while not EOF(f) do //wenn nicht das ende vom dokument erreicht ist, dann
begin
Setlength(Zeile,A+1);
readln(f,Zeile[A]);
if Zeile[A] <> '' then
A:= A + 1;
end;
CloseFile(f); //schließt das dokument wieder
{$I-}
if IOResult <> 0 then FehlerMeldung;
result := Zeile;
end;
oder mit Resourcenschutzblöcken (Try-Finally)
Delphi-Quellcode:
const LDB : String = 'LampenDB.txt';
function Auslesen(Datenbank: string):TStringArray;
var f: Textfile;
a, Auswertung: integer;
Zeile: TStringArray;
Path: String;
begin
Zeile:= Nil;
Path:= extractfilepath(paramStr(0)) + 'LampenDB\';
if DirectoryExists(Path) = False then //Wenn Pfad nicht angelegt ist
begin
CreateDir(Path);
Auswertung:= FileCreate(Path + Datenbank);
try
CreateDir(Path + 'Pics\');
if Auswertung = INVALID_HANDLE_VALUE then
begin
ShowMessage('Datenbank konnt nicht erstellt werden.' + sLineBreak
+ 'Eine Lösung wäre vielleicht, das Programm als Administrator zu starten.');
end
finally
CloseHandle(Auswertung)
end;
Exit;
end;
* AssignFile(f,Path + Datenbank); //Die daten aus dem Dokument werden in die Variable f "geschoben"
reset(f); //Geht an anfang der variable f
try
A:= 0;
while not EOF(f) do //wenn nicht das ende vom dokument erreicht ist, dann
begin
Setlength(Zeile,A+1);
readln(f,Zeile[A]);
if Zeile[A] <> '' then
A:= A + 1;
end;
finally
CloseFile(f); //schließt das dokument wieder
end;
result := Zeile;
end;