AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Datei Frei geben

Ein Thema von Timbuktu · begonnen am 2. Jun 2010 · letzter Beitrag vom 2. Jun 2010
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.336 Beiträge
 
Delphi 12 Athens
 
#5

Re: Datei Frei geben

  Alt 2. Jun 2010, 08:37
[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;
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:08 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