Seite 1 von 1

Nach 99 Images is schluss Oo

Verfasst: 15.03.2007 22:43
von sen-me

Code: Alles auswählen

If ExamineDirectory(0, folder, "") = 0
     Error(1, 7)
    EndIf
    
    While NextDirectoryEntry(0)
     If DirectoryEntryType(0) = #PB_DirectoryEntry_File
      If LCase(GetExtensionPart(folder+DirectoryEntryName(0))) = format
       If LoadImage(0, folder+DirectoryEntryName(0)) = 0
        Error(1, 8)
       EndIf
       
       ResizeImage(0, width, height)
       
       If yes = 1 : savename = RSet(Str(i), 2, "0")
       Else : savename = Str(i) : EndIf
       
       While FileSize(save+front+savename+"."+saveformat) > -1
        i + 1
        
        If yes = 1 : savename = RSet(Str(i), 2, "0")
        Else : savename = Str(i) : EndIf
       Wend
       
       If saveformat = "jpg"
        If SaveImage(0, save+front+savename+"."+saveformat, plugin, 10) = 0
         Error(1, 9)
        EndIf
       Else
        If SaveImage(0, save+front+savename+"."+saveformat, plugin) = 0
         Error(1, 10)
        EndIf
       EndIf
       
       FreeImage(0)
      EndIf
     EndIf
    Wend
    
    FinishDirectory(0)
Nach 99 Bildern hängt sich das Prog auf, wieso?

Verfasst: 15.03.2007 22:47
von ts-soft
>> Nach 99 Bildern hängt sich das Prog auf, wieso?
Bei mir funktioniert der Code überhaupt nicht :cry:

Re: Nach 99 Images is schluss Oo

Verfasst: 16.03.2007 00:25
von Kiffi

Code: Alles auswählen

savename = RSet(Str(i), 2, "0")
das geht ab i >= 100 in die Hose.

Grüße ... Kiffi

Verfasst: 16.03.2007 16:35
von sen-me
Gibts da auch ne Erklärung wieso und ob man das Problem beheben / anders machen kann?

EDIT:
Ah ich verstehe, d.h. es kommt zu einer Unendlichschleife, weil er immer wieder von 10 bis 99 prüft ob eine Datei da ist.
Demnach müsste dies ja gehen:

Code: Alles auswählen

If yes = 1 And i < 10 : savename = RSet(Str(i), 2, "0") 
       Else : savename = Str(i) : EndIf 
        
       While FileSize(save+front+savename+"."+saveformat) > -1 
        i + 1 
        
        If yes = 1 And i < 10 : savename = RSet(Str(i), 2, "0") 
        Else : savename = Str(i) : EndIf 
       Wend

Verfasst: 16.03.2007 16:44
von Kaeru Gaman
warum so umständlich?
haben die dateien nun führende nullen oder nicht?

wenn ja, bau bei RSet soviele stellen ein, wie's haben soll.
also, wenn du über hundert hast, dann verwende dreistellig,
bei über tausend vierstellig.

wenn nein, lass alle führenden nullen weg, also auch die im <10 bereich.

Verfasst: 16.03.2007 16:44
von ts-soft
Wie wäre es mit

Code: Alles auswählen

savename = RSet(Str(i), 3, "0")
Sollte dann bis 999 laufen :mrgreen:

Verfasst: 16.03.2007 16:56
von Kiffi
ts-soft hat geschrieben:Wie wäre es mit

Code: Alles auswählen

savename = RSet(Str(i), 3, "0")
Sollte dann bis 999 laufen :mrgreen:
... und dann kommt bald der nächste Thread: "Nach 999 Images is schluss Oo"

;-)

@sen-me: Setz Dich mal ein wenig mit den in PB eingebauten
Debugger-Funktionalitäten auseinander. Mit Verwendung von Calldebugger
und Variablenkontrolle und / oder Debug hättest Du das von selber
rauskriegen können.

Grüße ... Kiffi