RenameFile funtioniert nicht

Anfängerfragen zum Programmieren mit PureBasic.
Heinz Mendax
Beiträge: 50
Registriert: 29.03.2013 12:25
Wohnort: Eisenach

Re: RenameFile funtioniert nicht

Beitrag 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
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: RenameFile funtioniert nicht

Beitrag von NicTheQuick »

Mit 'Break'.
Bild
Heinz Mendax
Beiträge: 50
Registriert: 29.03.2013 12:25
Wohnort: Eisenach

Re: RenameFile funtioniert nicht

Beitrag 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.
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: RenameFile funtioniert nicht

Beitrag 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
Hygge
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Re: RenameFile funtioniert nicht

Beitrag von Fluid Byte »

Sind die Dateien schreibgeschützt?
Windows 10 Pro, 64-Bit / Outtakes | Derek
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Re: RenameFile funtioniert nicht

Beitrag 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.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
marcelx
Beiträge: 424
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Re: RenameFile funtioniert nicht

Beitrag von marcelx »

Hallo Mendax,

ich hatte auch so ein Effekt.
Die Dateien hatten ein andere Benutzername

Gruß
MarcelX
Win-10, PB 5.31 (Windows - x86)
Benutzeravatar
mk-soft
Beiträge: 3700
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: RenameFile funtioniert nicht

Beitrag von mk-soft »

Oder mit Administratorrechte starten... (Compiler-Optionen)
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Heinz Mendax
Beiträge: 50
Registriert: 29.03.2013 12:25
Wohnort: Eisenach

Re: RenameFile funtioniert nicht

Beitrag 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.
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: RenameFile funtioniert nicht

Beitrag 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.
Antworten