Seite 2 von 3
Re: RenameFile funtioniert nicht
Verfasst: 29.06.2017 11:55
von Heinz Mendax
Hallo GPI !
Das Lamentieren nützt mir nichts. Wie werden denn Repeat---Forever Endlosschlaufen unterbrochen, wenn innerhalb
der Schlaufe der Weitergang beim Punkt weiter: ausserhalb der Schleife erforderlich ist ?
mfG
Heinz
Re: RenameFile funtioniert nicht
Verfasst: 29.06.2017 11:57
von NicTheQuick
Mit 'Break'.
Re: RenameFile funtioniert nicht
Verfasst: 29.06.2017 17:00
von Heinz Mendax
Hallo!
"Goto" ist bei mir seit den Basicversionen der 80er verwurzelt.
In alten Programmen wird man eine Menge davon finden.
Ich verwende es da und dort - meine Programme sind nur mässig lang, sodass ich durch die Kommentierung kein Lesbarkeitsproblem sehe.
Habe das Goto aus dem Code entfernt:
Code: Alles auswählen
Ergebnis = ResizeImage(1, w3, h3, #PB_Image_Smooth)
verlassen=0
If image ;(2)
OpenWindow(1,0,0,w3,h3,a1$,#PB_Window_ScreenCentered)
ImageGadget(1,0,0,w3,h3,Ergebnis)
Delay(50)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
CloseWindow(1)
FreeImage(1)
verlassen=1
Case #WM_RBUTTONUP
CloseWindow(1)
FreeImage(1)
verlassen=1
EndSelect
Until verlassen=1
EndIf ;(2)
Das Problem mit RenameFile ist geblieben und betrifft immer die gleichen Dateien. Jetzt habe ich RenameFile gegen
CopyFile ersetzt. Die Bilder werden jetzt mit dem neuen Namen kopiert. Wenn man im Bedarfsfall kopiert statt
umbenennt,würde das Programm seien Zweck erfüllen.Die alten Dateien müssten dann noch gelöscht werden. Das Nicht-Umbennen-können ist aber ein echtes Manko.
Wie ist es mit einer WinAPI-Funktion für Rename. Könnte die wirksamer sein als RenameFile.
mfG
Heinz
+ Code-Tags -- A.
Re: RenameFile funtioniert nicht
Verfasst: 29.06.2017 17:20
von Kiffi
Heinz Mendax hat geschrieben:Wie ist es mit einer WinAPI-Funktion für Rename. Könnte die wirksamer sein als RenameFile.
WinAPI wird genauso wirksam sein wie RenameFile(). Wirksamer ist es, den Grund zu finden, warum die Datei nicht umbenannt werden kann und diesen beheben.
Grüße ... Peter
Re: RenameFile funtioniert nicht
Verfasst: 29.06.2017 21:51
von Fluid Byte
Sind die Dateien schreibgeschützt?
Re: RenameFile funtioniert nicht
Verfasst: 29.06.2017 22:48
von GPI
Heinz Mendax hat geschrieben:Wie werden denn Repeat---Forever Endlosschlaufen unterbrochen, wenn innerhalb
der Schlaufe der Weitergang beim Punkt weiter: ausserhalb der Schleife erforderlich ist ?
Wie Nic schon sagte, schau dir mal den Befehl Break an. Der verlässt eine Schleife sauber. Das Problem ist halt bei Schleifen, man weis nie, was der Compiler da alles in Hintergrund macht, wenn man mit GOTO einfach raushüpft, kann es passieren, das der Compiler nicht alles aufräumen kann.
Goto sollte man tunlichst selten nutzen und mit bedacht. Das ist wie eine Notbremse in Zug: Nur weil sie da ist, muss man nicht dauernd dran ziehen.
Re: RenameFile funtioniert nicht
Verfasst: 30.06.2017 12:50
von marcelx
Hallo Mendax,
ich hatte auch so ein Effekt.
Die Dateien hatten ein andere Benutzername
Gruß
MarcelX
Re: RenameFile funtioniert nicht
Verfasst: 30.06.2017 16:01
von mk-soft
Oder mit Administratorrechte starten... (Compiler-Optionen)
Re: RenameFile funtioniert nicht
Verfasst: 01.07.2017 09:05
von Heinz Mendax
Hallo !
Meinen Umnenncode habe ich nun so geändert:
Code: Alles auswählen
Ergebnis = ResizeImage(1, w3, h3, #PB_Image_Smooth)
If image ;(2)
OpenWindow(1,0,0,w3,h3,a1$,#PB_Window_ScreenCentered)
ImageGadget(1,0,0,w3,h3,Ergebnis)
Delay(50)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
CloseWindow(1)
FreeImage(1)
Break
Case #WM_RBUTTONUP
CloseWindow(1)
FreeImage(1)
Break
EndSelect
ForEver
EndIf ;(2)
bzw.:
Code: Alles auswählen
err1=RenameFile(AlterDateiname$,NeuerDateiname$)
; falls das Umnennen scheitert
If err1=0
WriteStringN(5,"Error Umnennen:"+AlterDateiname$)
; oder Kopieren
err2=CopyFile(AlterDateiname$,NeuerDateiname$)
If err2=0
WriteStringN(5,"Error Kopieren:"+AlterDateiname$)
EndIf
EndIf
5 ist eine LOG-Datei. Bei den ganzen Copy- , Rename und Delete-Operationen unter Win7 musste ich feststellen, daß auch kommerzielle Programme wie der Totalcommander das Umnennen der betroffenen Bilddateien verweigern.
mfG
Heinz
+ Code-Tags --A.
Re: RenameFile funtioniert nicht
Verfasst: 01.07.2017 09:51
von Nino
Heinz Mendax hat geschrieben:Hallo !
Meinen Umnenncode habe ich nun so geändert:
Nachdem hier nun schon wiederholt Moderatoren deinen Code durch Einschließen in
[ code ] und
[ /code ] besser lesbar gemacht haben, könntest du es vielleicht auch mal selbst tun?
Heinz Mendax hat geschrieben:musste ich feststellen, daß auch kommerzielle Programme wie der Totalcommander das Umnennen der betroffenen Bilddateien verweigern
Bei mir hat weder ein PureBasic-Programm noch der Total Commander je das Umbenennen von Dateien verweigert -- außer wenn diese gerade von einem anderen Programm geöffnet waren.