Danke, ich setz mich vielleicht mal die Tage dran um das ein wenig zu verschönern.
Na das hört man doch gerne.
Danke, ich setz mich vielleicht mal die Tage dran um das ein wenig zu verschönern.
Na das hört man doch gerne.
Nettes Programm, sicherlich sehr hilfreich wenn meine Jungs in die Schule kommen.
Ich habe es mal etwas umgestrickt, verschlankt, verbessert, verändert...
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=Stundenplaner.ico
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_UseUpx=y
#AutoIt3Wrapper_Res_Comment=Stundenplaner
#AutoIt3Wrapper_Res_Description=Stundenplaner
#AutoIt3Wrapper_Res_Fileversion=1.2.6.0
#AutoIt3Wrapper_Res_LegalCopyright=© 2016 by bingbongman
#AutoIt3Wrapper_Res_Language=1031
#AutoIt3Wrapper_Run_Au3Stripper=y
#Au3Stripper_Parameters=/so
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#cs ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
AutoIt Version: 3.3.14.2
Author: bingbongman (Brandt, Tobias)
Modified: Cape-City
Script Name: Stundenplaner.au3 - Copyright 2016
Script Function: Stundenplaner
Created with ISN AutoIt Studio v. 1.03
#ce ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
;
; Ungarische Notation (weitestgehend): $aX = Array, $cX = Counter, $hX = Handle, $iX = Integer, $pX = Pointer, $sX = String, ..., $ah_X = Array/Handle
;
#include <GUIConstants.au3>
#include <GuiStatusBar.au3>
#include <MsgBoxConstants.au3>
Opt("GUIOnEventMode", 1)
Global $iAnswer, $iDay, $iHour, $sINIFile, $sConfigFile = @ScriptDir & "\Config.ini", $sSaveFileName, $sHeaderText
Global $sVersion = "V1.2.6.0", $sLastEdit = "22.12.2016"
Global $sCreated = "Tobias Brandt", $sModified = "Cape-City", $sMailTo = "tobi.brandt@gmx.net", $sForumURL = "https://autoit.de/index.php/Thread/11622-Stundenplaner/?pageNo=1"
Global $aWochentag[6] = ["", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag"]
Global $aWochentagXPos[3] = ["54", "145", ""] ;==> [0]StartXPos, [1]X-Abstand, [2]Addierer
Global $aStunde[9] = ["", "Erste", "Zweite", "Dritte", "Vierte", "Fuenfte", "Sechste", "Siebte", "Achte"]
Global $aStundeYPos[3] = ["115", "38", ""] ;==> [0]StartXPos, [1]Y-Abstand, [2]Addierer
Global $iGUI_Width = 780, $iGUI_Height = 475
; Stundenplan GUI ######################################################################################################
Local $hStundenplaner = GUICreate ("Stundenplaner " & $sVersion & " - created by " & $sCreated & ", modified by " & _
$sModified, $iGUI_Width, $iGUI_Height, -1, -1)
GuiSetonEvent ($GUI_EVENT_CLOSE, "_GUI_GetMsg")
GUISetBkColor(0xBFCDDB)
; ######################################################################################################################
; Header Create Label und SetOnEvent ###################################################################################
Global $hHeader = GUICtrlCreateLabel ("", 0, 15, $iGUI_Width, 37, $SS_CENTER)
GUICtrlSetFont (-1, 18, 800, 0, "Arial Black")
GUICtrlSetBkColor(-1, 0xAACDAB)
GuiCtrlSetonEvent (-1, "_GUI_GetMsg")
; ######################################################################################################################
; Stunden Zeilen / Wochentage Spalten / INI Read und SetOnEvent ########################################################
Global $ah_TagStunde[9][9]
$aWochentagXPos[2] = $aWochentagXPos[0]
For $iDay = 0 To 5
$aStundeYPos[2] = $aStundeYPos[0]
For $iHour = 1 To 8
If $iDay = 0 Then
; Stunden Zeilen ###########################################################################################
GUICtrlCreateLabel ($iHour & ".", 7, $aStundeYPos[2], 30, 30, BitOR ($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_DLGMODALFRAME)
GUICtrlSetFont (-1, 12, 800, 0, "Arial Black")
GUICtrlSetBkColor(-1, 0xE3E3E3)
; ##########################################################################################################
Else
; Wochentage Spalten #######################################################################################
GUICtrlCreateLabel ($aWochentag[$iDay], $aWochentagXPos[2], 75, 120, 30, BitOR ($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_DLGMODALFRAME)
GUICtrlSetFont (-1, 12, 800, 0, "Arial Black")
GUICtrlSetBkColor (-1, 0xE3E3E3)
; ##########################################################################################################
; Unterrichtsfächer ########################################################################################
$ah_TagStunde[$iDay][$iHour] = GUICtrlCreateLabel ("", $aWochentagXPos[2], $aStundeYPos[2], 120, 30, BitOR ($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_DLGMODALFRAME)
GUICtrlSetFont (-1, 9, 800, 0, "Arial")
GUICtrlSetBkColor(-1, 0xE3E3E3)
GuiCtrlSetonEvent (-1, "_GUI_GetMsg")
; ##########################################################################################################
EndIf
$aStundeYPos[2] += $aStundeYPos[1]
Next
If $iDay > 0 Then $aWochentagXPos[2] += $aWochentagXPos[1]
Next
; ######################################################################################################################
; GUI Create MenuItem und SetOnEvent ###################################################################################
Global $aMenuItem_File = GUICtrlCreateMenu ("&Datei")
Global $aMenuItem_File_New = GUICtrlCreateMenuItem ("Neu", $aMenuItem_File)
GuiCtrlSetonEvent (-1, "FileChangedDialog")
Global $aMenuItem_File_Open = GUICtrlCreateMenuItem ("Öffnen", $aMenuItem_File)
GuiCtrlSetonEvent (-1, "FileChangedDialog")
Global $aMenuItem_File_SaveAs = GUICtrlCreateMenuItem ("Speichern unter...", $aMenuItem_File)
GuiCtrlSetonEvent (-1, "SaveAs")
Global $aMenuItem_File_Exit = GUICtrlCreateMenuItem ("Beenden", $aMenuItem_File)
GuiCtrlSetonEvent (-1, "Cancel")
Global $aMenuItem_Questionmark = GUICtrlCreateMenu ("&?")
Global $aMenuItem_Questionmark_About = GUICtrlCreateMenuItem ("Über", $aMenuItem_Questionmark)
GuiCtrlSetonEvent (-1, "About")
Global $aMenuItem_Questionmark_Help = GUICtrlCreateMenuItem ("Hilfe", $aMenuItem_Questionmark)
GuiCtrlSetonEvent (-1, "Help")
; ######################################################################################################################
; Footer Create Label ##################################################################################################
Global $hFooter = GUICtrlCreateLabel ($sINIFile, 6, $iGUI_Height - 45, $iGUI_Width, 37)
GUICtrlSetFont (-1, 10, 800, 0, "Arial")
; ######################################################################################################################
; Letzten offenen Stundenplan öffnen oder neuen Temporären erstellen ###################################################
Global $sTempFile = @ScriptDir & "\~stdplnr0.tmp"
LastOpened()
; ######################################################################################################################
GUISetState (@SW_SHOW)
While 1
Sleep(500)
WEnd
; ######################################################################################################################
; Funktionen ###########################################################################################################
; ######################################################################################################################
; Cancel ###############################################################################################################
Func Cancel()
If Not FileExists ($sConfigFile) Then
$sSaveFileName = FileOpen ($sConfigFile, BitOR ($FO_OVERWRITE, $FO_CREATEPATH))
;~ If $sSaveFileName = -1 Then CreateConfigError()
FileWrite ($sSaveFileName, "[Config]" & @CRLF & "LastOpened =")
FileClose ($sSaveFileName)
EndIf
IniWrite ($sConfigFile, "Config", "LastOpened", " '" & $sINIFile & "'")
If $sINIFile <> $sTempFile Then FileDelete ($sTempFile)
$iAnswer = MsgBox (262208, "Stundenplaner", "Auf Wiedersehen!", 3)
Exit
EndFunc
; ######################################################################################################################
; LastOpened ###########################################################################################################
Func LastOpened()
$sINIFile = IniRead ($sConfigFile, "Config", "LastOpened", "Error")
If $sINIFile = "Error" Or Not FileExists ($sINIFile) Then CreateNew()
If $sINIFile <> $sTempFile Then FileDelete ($sTempFile)
GUIPush()
EndFunc
; ######################################################################################################################
; FileChangedDialog ####################################################################################################
Func FileChangedDialog()
If $sINIFile = $sTempFile Then
$iAnswer = MsgBox (262179, "Stundenplaner", "Möchten Sie die Änderungen an " & $sHeaderText & @CRLF & "speichern?", 0)
Switch $iAnswer
Case $IDYES, $IDNO
If $iAnswer = $IDYES Then SaveAs()
If @GUI_CtrlId = $aMenuItem_File_New Then CreateNew(True)
If @GUI_CtrlId = $aMenuItem_File_Open Then OpenFile()
Case $IDCANCEL, $IDTIMEOUT
EndSwitch
Else
If @GUI_CtrlId = $aMenuItem_File_New Then CreateNew(True)
If @GUI_CtrlId = $aMenuItem_File_Open Then OpenFile()
EndIf
If $sINIFile <> $sTempFile Then FileDelete ($sTempFile)
EndFunc
; ######################################################################################################################
; OpenFile and Error ###################################################################################################
Func OpenFile()
$sINILoadFile = FileOpenDialog ("Öffnen", "Stundenplaner", "Ini Dateien (*ini)", 1 + 2)
If @error And $sINIFile = "" Then OpenError()
If Not @error Then $sINIFile = $sINILoadFile
GUIPush()
EndFunc
Func OpenFileError()
$iAnswer = MsgBox (262192, "Stundenplaner", "Der Stundenplan konnte nicht geladen werden!" & @CRLF & _
"Programm wird jetzt beendet!", 5)
Exit
EndFunc
; ######################################################################################################################
; SaveAs and Error #####################################################################################################
Func SaveAs()
Local $sSelectFileName = FileSaveDialog ("Speichern unter...", @ScriptDir, "INI Dateien (*.ini)", BitOR ($FD_PATHMUSTEXIST, $FD_PROMPTOVERWRITE))
If StringRight ($sSelectFileName, 4) <> ".ini" Then $sSelectFileName &= ".ini"
If $sSelectFileName = ".ini" Then Return
If $sINIFile = $sTempFile Then $iAnswer = FileMove ($sINIFile, $sSelectFileName, BitOR ($FC_OVERWRITE, $FC_CREATEPATH))
If $sINIFile <> $sTempFile Then $iAnswer = FileCopy ($sINIFile, $sSelectFileName, BitOR ($FC_OVERWRITE, $FC_CREATEPATH))
If Not $iAnswer Then
SaveAsError()
Return
EndIf
$sHeaderText = StringTrimRight (StringTrimLeft ($sSelectFileName, StringInStr ($sSelectFileName, "\", 0, -1)), 4)
$sINIFile = $sSelectFileName
GUIPush()
EndFunc
Func SaveAsError()
$iAnswer = MsgBox (262192, "Stundenplaner", "Der Stundenplan konnte nicht gespeichert werden!", 5)
EndFunc
; ######################################################################################################################
; CreateNew and Error ##################################################################################################
Func CreateNew($iOverwrite = False)
If $iOverwrite Or Not FileExists ($sTempFile) Then
$sHeaderText = "Neuer Stundenplan"
$sSaveFileName = FileOpen ($sTempFile, BitOR ($FO_OVERWRITE, $FO_CREATEPATH))
If $sSaveFileName = -1 Then CreateNewError()
FileWrite ($sSaveFileName, "[Header]" & @CRLF & "Header = '" & $sHeaderText & "'" & @CRLF & @CRLF)
For $iDay = 1 To 5
FileWrite ($sSaveFileName, "[" & $aWochentag[$iDay] & "]" & @CRLF)
For $iHour = 1 To 8
FileWrite ($sSaveFileName, $aStunde[$iHour] & " = " & @CRLF)
Next
Next
FileClose ($sSaveFileName)
EndIf
$sINIFile = $sTempFile
GUIPush()
EndFunc
Func CreateNewError()
$iAnswer = MsgBox (262192, "Stundenplaner", "Der Stundenplan konnte nicht erstellt werden!" & @CRLF & _
"Programm wird jetzt beendet!", 10)
Exit
EndFunc
; ######################################################################################################################
; _GUI_GetMsg ##########################################################################################################
Func _GUI_GetMsg()
Local $sInput, $sDefault
; Main Events ######################################################################################################
Switch @GUI_CtrlId
Case $GUI_EVENT_CLOSE
Cancel()
; ##############################################################################################################
Case $GUI_EVENT_MINIMIZE
; ##############################################################################################################
Case $GUI_EVENT_RESTORE
; ##############################################################################################################
Case $hHeader
$sDefault = IniRead ($sINIFile, "Header", "Header", "Error")
$sInput = InputBox ("Titel", "Wie lautet der Name für diesen Stundenplan?", $sDefault)
If Not @error Then IniWrite ($sINIFile, "Header", "Header", " '" & $sInput & "'")
; ##############################################################################################################
EndSwitch
; ##################################################################################################################
; Label Events #####################################################################################################
For $iDay = 1 To 5
For $iHour = 1 To 8
If @GUI_CtrlId = $ah_TagStunde[$iDay][$iHour] Then
$sDefault = IniRead ($sINIFile, $aWochentag[$iDay], $aStunde[$iHour], "Error")
If $sDefault = "" Then $sDefault = "- Frei -"
$sInput = InputBox ($aStunde[$iHour] & " Stunde", "Was haben Sie " & $aWochentag[$iDay] & " in der " & $iHour & ". Stunde?", $sDefault)
If Not @error Then IniWrite ($sINIFile, $aWochentag[$iDay], $aStunde[$iHour], " '" & $sInput & "'")
EndIf
Next
Next
; ##################################################################################################################
GUIPush()
EndFunc
; ######################################################################################################################
; GUIPush ##############################################################################################################
Func GUIPush()
; Header INI Read ##################################################################################################
$sHeaderText = IniRead ($sINIFile, "Header", "Header", "Error")
GuiCtrlSetData ($hHeader, $sHeaderText)
; ##################################################################################################################
; Label INI Read ###################################################################################################
For $iDay = 1 To 5
For $iHour = 1 To 8
GUICtrlSetData ($ah_TagStunde[$iDay][$iHour], IniRead ($sINIFile, $aWochentag[$iDay], $aStunde[$iHour], "Error"))
Next
Next
; ##################################################################################################################
; Footer INI Read ##################################################################################################
GuiCtrlSetData ($hFooter, $sINIFile)
; ##################################################################################################################
EndFunc
; ######################################################################################################################
; About ################################################################################################################
Func About()
MsgBox (0 + 64, "Über", "Stundenplaner " & $sVersion & @CRLF & _
"Geschrieben von " & $sCreated & @CRLF & _
"Modifiziert von " & $sModified & @CRLF & _
"Letze Veränderung am " & $sLastEdit)
EndFunc
; ######################################################################################################################
; Help #################################################################################################################
Func Help()
MsgBox (0 + 32, "Hilfe", "Wer Fragen oder Kritik hat, schickt bitte eine Email an:" & @CRLF & _
$sMailTo & ", oder besucht das AutoIt.de Forum unter" & @CRLF & $sForumURL)
EndFunc
; ######################################################################################################################
Alles anzeigen
Hauptänderungen (und sicherlich nicht die Letzte ) :
- Abfrage beim Start ob eine INI geöffnet werden soll oder man neu beginnen möchte
- 1D und 2D Arrays für den GUI Aufbau, die OnEvent Aktionen und das wieder in die INI schreiben
- GUI wird nicht ständig neugeladen, sondern nur nach einem Event
- die Haupt-Schleife besteht nur noch aus einem Sleep (500)
- Diverse Optische Veränderungen (z.B. werden die Texte jetzt X/Y Centered im Label angezeigt)
- Default Werte auf den OnEvent Flächen
- Stundenplanname wird per Default aus dem Dateinamen extrahiert (kann aber immer noch nachträglich verändert werden)
- Werte verschwinden nicht, wenn man die Abfragebox abbricht
- geöffnete INI Datei wird unten in der GUI angezeigt
Nachtrag 22.12.16:
- Programm öffnet die letzte Datei, keine Abfrage mehr beim Starten
- Wenn die Datei noch nicht gespeichert wurde und man eine andere öffnen oder eine neue erstellen, kommt eine Nachfrage
- Code weiter aufgeräumt und versucht die Variablen sinnvoll zu benennen
Hhhmmm...er mag meinen Code nicht mehr, eigentlich sollte er ihn für AutoIt formatieren...sorry!
Alles anzeigenNettes Programm, sicherlich sehr hilfreich wenn meine Jungs in die Schule kommen.
Ich habe es mal etwas umgestrickt, verschlankt, verbessert, verändert...
Hauptänderungen (und sicherlich nicht die Letzte ) :
- Abfrage beim Start ob eine INI geöffnet werden soll oder man neu beginnen möchte
- 1D und 2D Arrays für den GUI Aufbau, die OnEvent Aktionen und das wieder in die INI schreiben
- GUI wird nicht ständig neugeladen, sondern nur nach einem Event
- die Haupt-Schleife besteht nur noch aus einem Sleep (500)
- Diverse Optische Veränderungen (z.B. werden die Texte jetzt X/Y Centered im Label angezeigt)
- Default Werte auf den OnEvent Flächen
- Stundenplanname wird per Default aus dem Dateinamen extrahiert (kann aber immer noch nachträglich verändert werden)
- Werte verschwinden nicht, wenn man die Abfragebox abbricht
- geöffnete INI Datei wird unten in der GUI angezeigt
Schön, dass du dir die Mühe gemacht hast! Jetzt wird es Zeit für Kritik!
Konventionen bei Variablennennungen sind gerne gesehen.
$TagStunde[$Day][$Hour] ließt sich irgendwie komisch und gibt keine gute Auskunft über den Inhalt und die Typen des Inhaltes an. Besser wäre da $aTagStunde[$iDay][$iHour].
An einigen Stellen kannst du das Switchen auch sein lassen, weil du ja nur einen Case abfragst.
Also statt:
lieber gleich:
Die Sache mit $MenuItem11 will ich gar nicht erst ansprechen, denn ich denke du siehst was daran blöd ist
Außerdem wäre es glaube ich eine super Anwendungsmöglichkeit für Enums gewesen (Local Enum $iMontag = 1, $iDienstag, $iMittwoch, ...)
Zu guter Letzt solltest du den Code noch ein wenig auflockern, wenn man alles untereinanderschreibt dann findet man sich nach langer Zeit nicht mehr so gut ein.
Das ist wie beim Brief tippen, Sätze die zusammengehören bilden einen Absatz und so sollte es bei Funktionen sein.
Also statt
$MenuItem10 = GUICtrlCreateMenu ("&Datei")
$MenuItem11 = GUICtrlCreateMenuItem ("Neu", $MenuItem10)
$MenuItem12 = GUICtrlCreateMenuItem ("Öffnen", $MenuItem10)
$MenuItem13 = GUICtrlCreateMenuItem ("Beenden", $MenuItem10)
$MenuItem20 = GUICtrlCreateMenu ("&?")
$MenuItem21 = GUICtrlCreateMenuItem ("Über", $MenuItem20)
$MenuItem22 = GUICtrlCreateMenuItem ("Hilfe", $MenuItem20)
GuiSetonEvent ($GUI_EVENT_CLOSE, "_GUI_GetMsg")
GuiCtrlSetonEvent ($MenuItem11, "Save")
GuiCtrlSetonEvent ($MenuItem12, "Load")
GuiCtrlSetonEvent ($MenuItem13, "Cancel")
GuiCtrlSetonEvent ($MenuItem21, "About")
GuiCtrlSetonEvent ($MenuItem22, "Help")
Alles anzeigen
lieber:
$MenuItem10 = GUICtrlCreateMenu ("&Datei")
$MenuItem11 = GUICtrlCreateMenuItem ("Neu", $MenuItem10)
GuiCtrlSetOnEvent(-1, "Save")
$MenuItem12 = GUICtrlCreateMenuItem ("Öffnen", $MenuItem10)
GuiCtrlSetPnEvent (-1, "Load")
$MenuItem13 = GUICtrlCreateMenuItem ("Beenden", $MenuItem10)
GuiCtrlSetPnEvent (-1, "Cancel")
$MenuItem20 = GUICtrlCreateMenu ("&?")
$MenuItem21 = GUICtrlCreateMenuItem ("Über", $MenuItem20)
GuiCtrlSetonEvent(-1, "About")
$MenuItem22 = GUICtrlCreateMenuItem ("Hilfe", $MenuItem20)
GuiCtrlSetPnEvent(-1, "Help")
GuiSetOnEvent ($GUI_EVENT_CLOSE, "_GUI_GetMsg")
Alles anzeigen
Uuumpffff
Ja, das Script bedarf noch etlicher Aufräumarbeit, aber da ich mittlerweile soviel geändert hatte, wollte ich den Charme des
Originals noch etwas durchblicken lassen
Im ersten Schritt wollte ich eigentlich das Script nur in eine logische Reihenfolge bringen und einige Variablen sinnvoller umbenennen.
Der Versuche mit MenuItem10/11/12/.../20/21... war eine logische Zusammenfassung, des Hauptmenüpunktes und der darunter liegenden
Unterpunkte. Auch der Start mit der direkten Abfrage was man machen möchte gefällt mir noch nicht, aber vorher ging das Programm auf
und man musste dann erst abspeichern um etwas Dauerhaftes zu haben.
Es steckt noch viel Potential darin, selbst in so einem banalen Programm. Stolz bin ich aber auf die Verschachtelungen mit den ForNext
Schleifen, welche zum einen die GUI dynamisch aufbauen/füllen und zum Anderen auch die OnEvents setzen. Vorher war es ja mehr oder
weniger eine Batch-Datei.
Allerdings hat mir das System gezeigt, das es nicht überall gleich reagiert. So habe ich ja beim GUI Aufbau, den $Tag[0] bzw. $Stunde[0] als
Zähler für meine ForNext-Schleife verwendet. Sieht im Nachhinnein zwar blöd aus $Tag[$Tag[0]], aber das Arrayfeld war eh da und ich wollte
mit 1-5 bzw. 1-8 arbeiten um einen besseren Bezug zu Mo-Fr und 1h-8h zu bekommen. Ich werde das aber auch noch umbauen.
Das mit den Variablennamen $aTag oder $iDay habe ich allerdings noch nicht zu ganz verstanden, warum man das macht, bzw. was es einem
damit erleichtert.
So...ich werde dann nochmal ein wenig strippen und strecken
Nachtrag 22.12.16:
Vorherigen Thread den Code aktualisiert.
Das mit den Variablennamen $aTag oder $iDay habe ich allerdings noch nicht zu ganz verstanden, warum man das macht, bzw. was es einem
damit erleichtert.
Ganz einfach, wenn man sich mal das aktuelle Scope ansieht und sich alle Variablen betrachtet die es so gibt, dann sollte der Name der Variable einen Titel tragen der aussagekräftig ist und direkt Einblick bietet wofür die Variable genutzt wird. Wir haben schließlich nicht 5 Variablen sondern dutzende, wenn nicht sogar hunderte.
Bei $Tag habe ich (meine persönliche Meinung) absolut keine Ahnung was das sein soll. Ist da ein String gespeichert? Ist das ein Array? Ist das der Wochentag als Index?
Aus diesem Grund verwendet man die sogenannte ungarische Notation. Aus $Tag wird ein $aTag und schon weiß ich etwas mehr über die Variable.
Jetzt kann ich auf Anhieb sehen das es sich um ein Array handelt also kann ich beim scripten nicht auf die Idee kommen das Array als Standardvariable zu verwenden.
Bei $iDay wird das ganze noch besser.
$Day selbst sagt mir nur das es sich um einen Tag handeln muss, aber wie bei dem Array zuvor habe ich absolut keine Kenntnis (zumindest als fremder Leser) was in der Variable enthalten ist.
Ich muss erstmal ein wenig hochscrollen um zu sehen das es eine Zählervariable für eine For-Schleife ist, also warum packe ich nicht direkt ein i(nteger) davor?
Wenn ich mir jetzt $iDay angucke sehe ich auf direkt das die Variable einen Integer hält der einen Tag spezifiziert. Ich kann also davon ausgehen, dass $iDay einen Wert von 0 bis 6 bzw. 1 bis 7 hat.
Man kann das ganze natürlich noch auf die Spitze treiben und sowas schreiben $as_Tag (Array String, Tag) aber das ist dann geschmackssache und variiert von Coder zu Coder.
Letzendlich ist es deine Entscheidung wie du deinen Code schreiben möchtest. Ich kann dir nur empfehlen dich an solche Konventionen zu halten, da es das Arbeiten in größeren Projekten enorm erleichtert und man nicht sinnlos Debuggen muss weil man ein Array wie einen String handhabt.
Das mit dem Code auseinanderziehen ist mein persönlicher Stil, ich finde das lockert das schön auf und man kann das einfacher lesen.
Das soll widerum nicht heißen, dass man jede zweite Zeile freilässt sondern seinen Code sinnvoll in Absätze gliedert.
Nebenbei, wenn dein Code im Post nicht richtig angezeigt wird, dann nimm die <Code-Tags> und wähle AutoIt aus (falls du das nicht gemacht hast)!
Ich habe die Code-Tags verwendet, auch mal gelöscht und neu angelegt. Will einfach nicht mehr in dem Post....
Quelltext ist auch auf dem neusten Stand, schon krass das ich immer wieder kleinere Bugs finde
schon krass das ich immer wieder kleinere Bugs finde
Programmieren ohne Bugs wäre nur halb so spaßig