Aktuelle Zeit: 04.06.2020 18:32

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Ordner löschen mit Sicherheitsabfrage
BeitragVerfasst: 26.01.2020 16:33 
Offline
Benutzeravatar

Registriert: 11.10.2005 15:46
Kann es sein, daß ich das etwas zu umständlich geschrieben habe? :|

Code:
If FileSize("Delete-Folder.ini") > 0
  If ReadFile(0, "Delete-Folder.ini")
    Path$ =  Trim(ReadString(0))
    CloseFile(0)
    Result = MessageRequester("Delete this folder?", Path$, #PB_MessageRequester_YesNo)
    If Result = #PB_MessageRequester_Yes
      ;DeleteDirectory(Path$, "", #PB_FileSystem_Recursive)
      MessageRequester("Information", Path$  + #LF$ + #LF$ + "Folder deleted!", #PB_MessageRequester_Ok)
    Else
      Result = MessageRequester("Delete other folder?", "", #PB_MessageRequester_YesNo)
      If Result = #PB_MessageRequester_Yes
        Path$ = PathRequester("Locate folder to delete:", "")
        If Path$
          If CreateFile(0, "Delete-Folder.ini")
            WriteString(0, Path$)
            CloseFile(0)
          Else
            MessageRequester("Error:", "Can't write the file", 0)
          EndIf
          Result = MessageRequester("Delete this folder?", Path$, #PB_MessageRequester_YesNo)
          If Result = #PB_MessageRequester_Yes
            ;DeleteDirectory(Path$, "", #PB_FileSystem_Recursive)
            MessageRequester("Information", Path$  + #LF$ + #LF$ + "Folder deleted!", #PB_MessageRequester_Ok)
          EndIf
        EndIf
      EndIf
    EndIf
  EndIf
Else
  Path$ = PathRequester("Locate folder to delete:", "")
  If Path$
    If CreateFile(0, "Delete-Folder.ini")
      WriteString(0, Path$)
      CloseFile(0)
    Else
      MessageRequester("Error:", "Can't write the file", 0)
    EndIf
    Result = MessageRequester("Delete this folder?", Path$, #PB_MessageRequester_YesNo)
    If Result = #PB_MessageRequester_Yes
      ;DeleteDirectory(Path$, "", #PB_FileSystem_Recursive)
      MessageRequester("Information", Path$  + #LF$ + #LF$ + "Folder deleted!", #PB_MessageRequester_Ok)
    EndIf
  EndIf
EndIf
End

_________________
PureBasic 5.71 | Windows 10 pro (x64)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Ordner löschen mit Sicherheitsabfrage
BeitragVerfasst: 26.01.2020 17:42 
Offline
Ein Admin
Benutzeravatar

Registriert: 29.08.2004 20:20
Wohnort: Saarbrücken
Ja, wenn du z.B. Gebrauch von Procedures machst, könntest du die Redundanz im letzten Else-Zweig vermeiden.

Es geht aber auch ganz ohne Procedures die Redundanz zu vermeiden. Vielleicht mit einer Variable mehr.

_________________
Ubuntu Gnome 20.04 LTS x64, PureBasic 5.72 x64 (außerdem 4.41, 4.50, 4.61, 5.00, 5.10, 5.11, 5.21, 5.22, 5.30, 5.31, 5.40, 5.50, 5.60, 5.71b2)
"Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen – Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Ordner löschen mit Sicherheitsabfrage
BeitragVerfasst: 26.01.2020 20:12 
Offline
Benutzeravatar

Registriert: 11.10.2005 15:46
Ist der Code mit Procedures kleiner bzw. "schöner" bzw. übersichtlicher oder der ohne Procedures mit einer Variable mehr?

_________________
PureBasic 5.71 | Windows 10 pro (x64)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Ordner löschen mit Sicherheitsabfrage
BeitragVerfasst: 26.01.2020 21:16 
Offline
Ein Admin
Benutzeravatar

Registriert: 29.08.2004 20:20
Wohnort: Saarbrücken
Dafür gibt es keine absolute Metrik. Natürlich wird er kleiner, aber schön sind vermutlich beide Versionen. Da hat ja aber jeder Programmierer seine eigenen Vorstellungen. Hässlich finde ich hauptsächlich Redundanz, denn die ist meistens vermeidbar und macht es definitiv schöner.

_________________
Ubuntu Gnome 20.04 LTS x64, PureBasic 5.72 x64 (außerdem 4.41, 4.50, 4.61, 5.00, 5.10, 5.11, 5.21, 5.22, 5.30, 5.31, 5.40, 5.50, 5.60, 5.71b2)
"Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen – Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Ordner löschen mit Sicherheitsabfrage
BeitragVerfasst: 04.02.2020 18:47 
Offline
Benutzeravatar

Registriert: 11.10.2005 15:46
Was ist genau eine Redundanz (im letzten Else-Zweig)?

_________________
PureBasic 5.71 | Windows 10 pro (x64)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Ordner löschen mit Sicherheitsabfrage
BeitragVerfasst: 04.02.2020 19:21 
Offline
Ein Admin
Benutzeravatar

Registriert: 29.08.2004 20:20
Wohnort: Saarbrücken
Den komplette Code, der im letzten Else-Zweig steht, gibt es auch schon vorher, das heißt du hast da eine Code-Dopplung. Am besten vermeidet man doppelten Code, indem man ihn in Prozeduren auslagert oder ihn anders strukturiert.

Das könntest du zum Beispiel so umgehen:
Code:
Define deleteOtherFolder.i = #False

If FileSize("Delete-Folder.ini") > 0
   If ReadFile(0, "Delete-Folder.ini")
      Path$ =  Trim(ReadString(0))
      CloseFile(0)
      Result = MessageRequester("Delete this folder?", Path$, #PB_MessageRequester_YesNo)
      If Result = #PB_MessageRequester_Yes
         ;DeleteDirectory(Path$, "", #PB_FileSystem_Recursive)
         MessageRequester("Information", Path$  + #LF$ + #LF$ + "Folder deleted!", #PB_MessageRequester_Ok)
      Else
         Result = MessageRequester("Delete other folder?", "", #PB_MessageRequester_YesNo)
         deleteOtherFolder = Bool(Result = #PB_MessageRequester_Yes)
      EndIf
   EndIf
Else
   deleteOtherFolder = #True
EndIf

If deleteOtherFolder
   Path$ = PathRequester("Locate folder to delete:", "")
   If Path$
      If CreateFile(0, "Delete-Folder.ini")
         WriteString(0, Path$)
         CloseFile(0)
      Else
         MessageRequester("Error:", "Can't write the file", 0)
      EndIf
      Result = MessageRequester("Delete this folder?", Path$, #PB_MessageRequester_YesNo)
      If Result = #PB_MessageRequester_Yes
         ;DeleteDirectory(Path$, "", #PB_FileSystem_Recursive)
         MessageRequester("Information", Path$  + #LF$ + #LF$ + "Folder deleted!", #PB_MessageRequester_Ok)
      EndIf
   EndIf
EndIf
End

_________________
Ubuntu Gnome 20.04 LTS x64, PureBasic 5.72 x64 (außerdem 4.41, 4.50, 4.61, 5.00, 5.10, 5.11, 5.21, 5.22, 5.30, 5.31, 5.40, 5.50, 5.60, 5.71b2)
"Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen – Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye