Textdatei erstellen auf Basis von GUI mit Start- und Enddatum Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Filzfrosch
Posts: 64
Joined: 18 Feb 2017, 08:39
Location: Hamburg / Germany

Textdatei erstellen auf Basis von GUI mit Start- und Enddatum

24 May 2019, 17:28

Moinsen,

ich muss ein script erstellen, bei dem per GUI ein Startdatum und ein Enddatum eingestellt wird.
Per Button soll daraus eine txt-Datei erstellt werden, die für jedes einzelne Datum vom Start bis Ende eine nummerierte Zeile (mit führender 0 vor 1-9) für den Tag + eine Wochenangabe enthält.

Beispiel:
Per GUI wird ausgewählt:
Startdatum: 20.05.2019
Enddatum: 30.05.2019

Die Textdatei soll dann folgenden Inhalt haben (Tag + Woche):
T01 W01
T02 W01
T03 W01
T04 W01
T05 W01
T06 W01
T07 W01
T08 W02
T09 W02
T10 W02
T11 W02
Ehrlich gesagt habe ich nicht die Spur einer Ahnung, wie ich das in der Form in die Textdatei kriegen kann.
Kann mir jemand auf die Sprünge helfen bitte?
Danke im Voraus!
Last edited by Filzfrosch on 27 May 2019, 05:41, edited 2 times in total.
Rohwedder
Posts: 7628
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Textdatei erstellen auf Basis von GUI mit Start- und Enddatum  Topic is solved

25 May 2019, 03:41

Hallo,
die Gui mußt du dir selbst dazu basteln.

Code: Select all

FormatTime, Heute,, dd.MM.yyyy
InputBox, Anfangsdatum,Anfangsdatum,,, 130, 100,,,,, %Heute%
InputBox, Enddatum,Enddatum,,, 130, 100,,,,, %Anfangsdatum%
RegExMatch(Anfangsdatum, "(\d+).(\d+).(\d+)", M)
Anfangsdatum := SubStr(2 Format("{:03}{:02}{:02}", M3, M2, M1), -7)
RegExMatch(Enddatum, "(\d+).(\d+).(\d+)", M)
Enddatum := SubStr(2 Format("{:03}{:02}{:02}", M3, M2, M1), -7)
AnzahlTage := Enddatum
AnzahlTage -= Anfangsdatum, days
FileDelete, Text.txt
Loop,% ++AnzahlTage
	FileAppend,% "T" Format("{:02}", A_Index) " W" Format("{:02}",(A_Index-1)//7+1) "`n", Text.txt
Run, Text.txt
Filzfrosch
Posts: 64
Joined: 18 Feb 2017, 08:39
Location: Hamburg / Germany

Re:Textdatei erstellen auf Basis von GUI mit Start- und Enddatum

25 May 2019, 09:05

Wow, voll auf die 12 .... Du bist echt der Hammer!
Das ist perfekt das was ich wollte, vielen Dank!
Ich werde mich jetzt mal damit beschäftigen, es einzubauen und zu verstehen, aber der Thread ist auf jeden Fall gelöst.

Achso, und sorry, ich hatte wohl vergessen einen Subject zu wählen. Komisch, dass der Thread dann überhaupt akzeptiert wird ...
Last edited by Filzfrosch on 27 May 2019, 09:37, edited 1 time in total.
Merry Crisis and a happy new fear
Filzfrosch
Posts: 64
Joined: 18 Feb 2017, 08:39
Location: Hamburg / Germany

Re: Textdatei erstellen auf Basis von GUI mit Start- und Enddatum

27 May 2019, 05:41

So, nochmal danke für die superschnelle und effektive Lösung.
Eine Frage habe ich nachträglich nun doch noch:
Ist es möglich, bei der Ausgabe in der Textdatei auch noch in jeder Zeile vorne das entsprechende Datum anzugeben?

Also das Ergebnis dann so aussehen zu lassen:
Beispiel:

Startdatum: 20.05.2019
Enddatum: 30.05.2019
20.05.2019,T01 W01
21.05.2019,T02 W01
22.05.2019,T03 W01
23.05.2019,T04 W01
24.05.2019,T05 W01
25.05.2019,T06 W01
26.05.2019,T07 W01
27.05.2019,T08 W02
28.05.2019,T09 W02
29.05.2019,T10 W02
30.05.2019,T11 W02
Wäre klasse, wenn mir dabei nochmal jemand helfen könnte.
Danke im Voraus!
Merry Crisis and a happy new fear
Rohwedder
Posts: 7628
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Textdatei erstellen auf Basis von GUI mit Start- und Enddatum

27 May 2019, 07:39

Hallo,
war wohl doch schwieriger zu verstehen?
Der RegExMatch hilft übrigens DatumEingaben wie 1.1.19 zu verdauen.

Code: Select all

FormatTime, Heute,, dd.MM.yyyy
InputBox, Anfangsdatum,Anfangsdatum,,, 130, 100,,,,, %Heute%
InputBox, Enddatum,Enddatum,,, 130, 100,,,,, %Anfangsdatum%
RegExMatch(Anfangsdatum, "(\d+).(\d+).(\d+)", M)
Anfangsdatum := SubStr(Format("2{:03}{:02}{:02}", M3, M2, M1), -7)
RegExMatch(Enddatum, "(\d+).(\d+).(\d+)", M)
Enddatum := SubStr(Format("2{:03}{:02}{:02}", M3, M2, M1), -7)
AnzahlTage := Enddatum
AnzahlTage -= Anfangsdatum, days
FileDelete, Text.txt
Loop,% ++AnzahlTage
{
	FormatTime, AusgabeDatum, %Anfangsdatum%, dd.MM.yyyy
	FileAppend,% AusgabeDatum Format(",T{:02} W{:02}`n", A_Index, (A_Index-1)//7+1), Text.txt
	Anfangsdatum += 1, days
}
Run, Text.txt
Filzfrosch
Posts: 64
Joined: 18 Feb 2017, 08:39
Location: Hamburg / Germany

Re: Textdatei erstellen auf Basis von GUI mit Start- und Enddatum

27 May 2019, 09:30

Naja, ich sage mal so, ich habe mich fast 2 Jahre nicht mehr mit AHK beschäftigt und möchte mich jetzt mal tiefer rein arbeiten.
Da ich z.Z. durch einen doppelten Beinbruch sehr viel Zeit und Langeweile habe, ist das eine schöne Sache, den Kopf ein wenig auf Touren zu halten.
Ich probiere viel herum (nicht nur hieran) und es ist ohne IT-Hintergrund und im greisen Alter von 55 nicht immer leicht zu verstehen ... :-D

Wie beim letzten Mal, nur noch schneller diesmal, ist der Code wieder perfekt. Ich danke Dir!!!
Merry Crisis and a happy new fear
User avatar
Ragnar
Posts: 613
Joined: 30 Sep 2013, 15:25

Re: Textdatei erstellen auf Basis von GUI mit Start- und Enddatum

27 May 2019, 10:02

Alternativ kann man auch DateTime-Steuerelemente nutzen, dann spart man sich das ganze RegEx-Gedöns:

Code: Select all

Gui, Add, Text,, Startdatum
Gui, Add, DateTime, vStartdatum
Gui, Add, Text,, Enddatum
Gui, Add, DateTime, vEnddatum
Gui, Add, Button,, Erstellen
Gui, Show
return

ButtonErstellen:
FileDelete, Text.txt
Gui, Submit
Datum := Startdatum
while (Datum <= Enddatum)
{
    FormatTime, AusgabeDatum, %Datum%, dd.MM.yyyy
	FileAppend % AusgabeDatum Format(",T{:02} W{:02}`n", A_Index, (A_Index-1)//7+1), Text.txt
    Datum += 1, days
}
Run, Text.txt
return

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 49 guests