AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen
Thema durchsuchen
Ansicht
Themen-Optionen

Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen

Ein Thema von t0mmy · begonnen am 15. Mär 2012 · letzter Beitrag vom 16. Mär 2012
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen

  Alt 15. Mär 2012, 16:45
Brauche ich nicht, das erledigt IncludeTrailingPathDelimiter von ganz alleine . Und ich habe ja gar nicht gegiftet, sondern nur darauf hingewiesen, dass da potentielle Fehlerquellen im Code stecken. Wenn Popov da gleich ausrastet, ist das sein Problem.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#12

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen

  Alt 15. Mär 2012, 16:49
Brauche ich nicht, das erledigt IncludeTrailingPathDelimiter von ganz alleine .
Gut zu wissen! Danke

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#13

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen

  Alt 15. Mär 2012, 17:33
Das hat nichts mit ausrasten zu tun sondern mit einer von oben herab Art. Es geht auch freundlicher.

Was deine Nullprüfung angeht, so hast du den wichtigsten Satz von mir überlesen: "Da ich zufällig ein Projekt offen habe in dem sich diese Funktion befindet". In diesem Fall ist es eine individuelle Funktion, von allem Balast befreit. Als Pfad kommt der Programmpfad plus Unterordner. Also kein Nullpfad da ein Programmpfad existiert. Für die Aufgabe für die sie gedacht ist funktioniert die Funktion fehlerfrei. Ich habe nichts gegen eine Verbesserung, aber wenn Kritik kommt, dann solte man zuerst den Hintergrund erfragen. Dann kann man.

Dann zum try finally. Zwei Punkte: auch hier werde ich nicht schon wieder eine Diskussion darüber führen will, ob es nötig ist oder nicht. Ich bin der Meinung nein. Wozu? Ist schon paar Jahre her, aber ich bin der Meinung es ausdiskutiert zu haben. Und zweitens:

Delphi-Quellcode:
  if FindFirst(Path + '*' + Ext, Attrib, Search) = 0 then
    try
      repeat
        List.Add(Path + Search.Name);
      until FindNext(Search) <> 0;
    finally
      FindClose(Search);
    end;
So wie es ist wird FindClose bei einem leeren Ordner nicht ausgeführt. Oder irre ich mich da?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen

  Alt 15. Mär 2012, 17:36
Du irrst nicht. In dem Falle ist das aber auch gar nicht nötig. Übrigens sollte man auch in individuellen Projekten immer mögliche Fehlerquellen ausschließen, das hat mit privatem Gebrauch oder dergleichen nichts zu tun. Ich denke da an einen Satz, den ich von einem Entwickler einmal gehört habe "Das ist kein Bug, es tritt ja nur in ganz speziellen Situationen auf.". Was soll man dazu noch sagen?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#15

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen

  Alt 15. Mär 2012, 20:00
Nicht nur in diesem Fall. FindFirst und FindNext liefern bereits Fehlercodes, d.h. deren Fehler wurden bereits abgefangen. Sie noch mal in ein Schutzblock stecken ist doppeltgemoppelt.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#16

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen

  Alt 15. Mär 2012, 20:24
Nur dass WinAPI Funktionen keine Delphi Exceptions auslösen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#17

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen

  Alt 15. Mär 2012, 20:41
Es geht nicht um Exceptions. if FindFirst(...) = 0 then kein Fehler else Fehler.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#18

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen

  Alt 15. Mär 2012, 20:56
Ich sehe in deinem Code aber einen Except-Finally-Block. Oder wirft die VCL Kapselung eine Exception?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#19

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen

  Alt 15. Mär 2012, 20:58
In welchem?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen

  Alt 16. Mär 2012, 07:20
Zitat:
SysUtils.FindClose
Gibt den mit FindFirst zugewiesenen Speicher frei.
So, und das passiert eben nicht, wenn z.B. beim "List.Add" eine Exception auftritt (Liste ist nil oder was weiß ich), wenn man auf den try-finally-Block verzichtet. Ist FindFirst <> 0, wird ja gar kein Speicher belegt, da ist FindClose also überflüssig (schadet aber auch nicht). Im Übrigen halte ich mich aus einer weiteren Diskussion ab sofort heraus, da sie in meinen Augen sinnlos ist.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 20:20 Uhr.
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