Einzelnen Beitrag anzeigen

Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Dateipfad in Variable speichern?

  Alt 19. Okt 2022, 13:15
Ich gehe mal davon aus, dass immer nur ein Profil aktiv sein kann. Da würde ich sofort auf einen Enumerator zurückgreifen, um die 4 if..then rauszuschmeißen und durch ein case ersetzen. Bei einem case wird sofort nach dem richtigen Fall der Rest übersprungen. Bei deiner Variante werden immer alle Profile geprüft.
Diesen Teil:
Delphi-Quellcode:
    if not DirectoryExists(p1String) then begin
      CreateDir(p1String);
würde ich in eine Methode auslagern, da immer das gleiche, nur mit anderen Werten gemacht wird. Am besten sollte es eine Function sein, damit du im Fehlerfall reagieren kannst.
Das würde insgesamt etwa so aussehen:
Delphi-Quellcode:
type
  tProfiles = (UnknownProfile, p1, p2, p3, p4);

const
  p1String = 'H:\testend\profil1';
  p2String = 'H:\testend\profil2';
  p3String = 'H:\testend\profil3';
  p4String = 'H:\testend\profil4';

function IsDirectoryOK(const ADirName: String);
begin
   Result := DirectoryExists(ADirName);
   if not Result then begin
     try
      CreateDir(ADirName);
     except
      Result := false;
     end;
   end;
end;

procedure Test(Profil: tProfiles);
begin
  case Profil of
   p1: begin
     if IsDirectoryOK(p1String) then begin
     //andere Sachen machen, auch den Pfad p1String verwenden
     end;
   end;
   p2: begin
     if IsDirectoryOK(p2String) then begin
     //andere Sachen machen, auch den Pfad p2String verwenden
     end;
   end;
   p3: begin
     if IsDirectoryOK(p3String) then begin
     //andere Sachen machen, auch den Pfad p3String verwenden
     end;
   end;
   p4: begin
     if IsDirectoryOK(p4String) then begin
     //andere Sachen machen, auch den Pfad p4String verwenden
     end;
   end
   else
     showmessage('ungültiges Profil gewählt');
  end;
end;
Das ist ungeprüft, da ich gerade kein Delphi zur Hand habe.
Peter
  Mit Zitat antworten Zitat