Seite 3 von 3

Verfasst: 13.12.2006 14:20
von #NULL
wegen dem break.
"das spart unter Umständen sehr viel Zeit!"
meinst du (bei mir) wegen dem EndIf, dem Wend und dem NextDirectoryEntry(..) ? :freak:

Code: Alles auswählen

    While NextDirectoryEntry(dir) And res
      name=DirectoryEntryName(dir)
      If name <> "." And name <> ".."
        res=0
      EndIf
    Wend 
du kannst von mir aus auch

Code: Alles auswählen

While res AND NextDirectoryEntry(dir)
schreiben um den proc-aufruf zu sparen, aber abgebrochen wird bei mir auch.

Verfasst: 13.12.2006 14:58
von AND51
Das meinte ich bei allen, aber wenn du es hast, dann ist ja gut.
Habe meine prozedur verbessert.

>und wenn man eine datei übergibt, erfährt man, ob sie leer ist.
Falsch, dann erfährt man seine größe.

>geht ja gar nicht. wenn man eine datei übergibt, wird ein backslash angehängt.
Du musst genauer lesen. Wenn eine Datei übergeben wird, wird ein Backslash angehängt und ExamineDirectory(9 aufgerufen, was dann unweigerlich fehlschlägt, logisch! Deshalb tritt ja auch FileSize() in Szene und entfernt den Backslash wieder.
Schließlich können ja auch Verzeichnisse z. B. C.\mein Ordner.bmp\" heißen!

> ..verzeichnies leer, oder 1 byte große datei drin.
ja, habes es jetzt verbessert 0=empty, <>0 heißt "nicht leer" und ggf. Grund (wenn Zahl negativ) oder Dateigröße (wenn zahl poisitiv).

>also ich würde eine einfache boolsche antwort bevorzugen.
Wieso sollte das mit meiner Prozedur nicht gehen?

Code: Alles auswählen

If Not isEmpty()
     Debug "Leer wie meine Geldbörse"
EndIf

; ODER

If isEmpty() = 0
     Debug "Leerer wird's nicht!!"
EndIf

Verfasst: 13.12.2006 15:15
von #NULL
sorry, aber jetzt mußt du noch den funktonsnamen
ändern. weil:

Code: Alles auswählen

If isEmpty(..)
  ;is not empty
ElseIf Not isEmpty(..)
  ; is empty
EndIf
"Gibt 0 (#True) zurück, wenn Verzeichnis leer "
:freak: :freak:


..außerdem fehlt immenoch die letzte klammer bei procedurereturn..left.. ect :freak: :freak: :freak: :freak:

Verfasst: 13.12.2006 15:26
von AND51
OK, habe ich vergessen, als ich die Procedure gerade OTF bearbeitet habe...
Klammer ist da und die beschreibung der Rückgabewerte habe ich aktualisiert.

Der Funktionamen kann jeder nennen, wie er will, schließlich ist niemand gezwungen, einen aus dem Forum kopierten Code 1:1 zu übernehmen, ohne Änderungen...

So, und nun bin ich fertig mit diesem Thread....... :|

Verfasst: 13.12.2006 15:34
von Kaeru Gaman
nuja... aber eins ist unbestritten:

0 ist #False

wenn die Funktion isEmpty() heißt, darf sie bei leer nicht #False zurückgeben.

Code: Alles auswählen

If isRot(Ampel)
  GibGas()
EndIf

Verfasst: 13.12.2006 16:45
von AND51
So, nun bin ich nervlich am Ende... :coderselixir:
Habs auch noch korrigiert...