![]() |
Ordner verschiben verbessern
hi hab mal ein Problem
Ich habe einen ordner für eine aktuelle KW der soll in der nächsten KW in ein archiv verschoben werden. Darauhin soll ein neuer ordener für die neue KW erzeugt werden soweit ghet das auch un zwar so
Delphi-Quellcode:
mein problem ist jetzt das mir das nicht so gefällt und keine ahnung habe wie ich das verbessern könnte
if DirectoryExists (ExtractFilePath(ParamStr(0)) +('\Vertretungspläne\'+(IntToStr(YearOf(Date)))+'_KW_'+(IntToStr(WeekOfTheYear(Date)-1)))) then
begin Timer1.Enabled:= True; Form8.liste1laden; Form8.liste2laden; end; function TForm7.MoveDir(const fromDir, toDir: string): Boolean; var fos: TSHFileOpStruct; begin ZeroMemory(@fos, SizeOf(fos)); with fos do begin wFunc := FO_MOVE; fFlags := FOF_FILESONLY; pFrom := PChar(fromDir + (ExtractFilePath(ParamStr(0)))+'Vertretungspläne\'+(IntToStr(YearOf(Date)))+'_KW_'+(IntToStr(WeekOfTheYear(Date)-1))); pTo := PChar(toDir+(ExtractFilePath(ParamStr(0)))+'Vertretungspläne Archiv\Jahr_'+(IntToStr(yearof(Date)))); end; Result := (0 = ShFileOperation(fos)); Timer1.Enabled:= False; end; //==============Prozedure ordener verschieben=================================== procedure TForm7.ordnerverschieben; Var pFrom,pTo :String; begin if MoveDir(pFrom,pTo) = True then Showmessage(('Ordner '+(IntToStr(YearOf(Date)))+'_KW_'+(IntToStr(WeekOfTheYear(Date)-1)))+' wurde ins Archiv Jahr_'+(IntToStr(yearof(Date)))+ ' Verschoben'); ShellTreeView1.Refresh(ShellTreeView1.Items[0]); Timer1.Enabled:= False; end; procedure TForm7.Timer1Timer(Sender: TObject); begin ordnerverschieben; ForceDirectories(ExtractFilePath(ParamStr(0)) + 'Vertretungspläne\'+(IntToStr(YearOf(Date)))+'_KW_'+(IntToStr(WeekOfTheYear(Date)))+'\Bemerkungen'); ForceDirectories(ExtractFilePath(ParamStr(0)) + 'Vertretungspläne\'+(IntToStr(YearOf(Date)))+'_KW_'+(IntToStr(WeekOfTheYear(Date)+1))+'\Bemerkungen'); Form8.liste1laden; Form8.liste2laden; end; z.b in der ersten abfrage schöne wäre es nachder KW abzufragen anstatt nach dem ordner wie könnt ich das verbessern |
Re: Ordner verschiben verbessern
Welche erste Abfrage?
|
Re: Ordner verschiben verbessern
Ob der ordener vorhanden ist
Delphi-Quellcode:
if DirectoryExists (ExtractFilePath(ParamStr(0)) +('\Vertretungspläne\'+(IntToStr(YearOf(Date)))+'_KW_'+(IntToStr(WeekOfTheYear(Date)-1)))) then
begin Timer1.Enabled:= True; end; |
Re: Ordner verschiben verbessern
Mit Format() könnte man das schon kürzer gestalten.
|
Re: Ordner verschiben verbessern
und zwar
|
Re: Ordner verschiben verbessern
Delphi-Quellcode:
Und das dann entsprechend für das Zielverzeichnis.
const BasicPathFormat = '%sVertretungspläne\%d_KW_%d';
if DirectoryExists(Format(BasicPathFormat, [ExtractFilePath(ParamStr(0)), YearOf(Date), WeekOfTheYear(Date)])) then... |
Re: Ordner verschiben verbessern
Es wäre z.b besser den Timer jeden montag auslösen zu lassen wie mach ich das ab besten
|
Re: Ordner verschiben verbessern
Wie lange soll Dein Programm denn laufen? :shock: Oder meinst Du, dass der Timer nur gestartet werden soll, wenn das Prog an einem Montag gestartet wird?
|
Re: Ordner verschiben verbessern
nein das programm läuft 24 stunden und das ganze jahr lang
|
Re: Ordner verschiben verbessern
Im Timer-Ereignis könntest Du diese Zeile als erste einfügen (Unit DateUtils einbinden):
Delphi-Quellcode:
if DayOfTheWeek(now) <> DayMonday then exit;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz