Hi,
ich mach für unsere Schulsanitäter die Homepage, und da schreib ich für unseren Lehrer nen Editor, damit er sich nicht mit dem Quelltext prügeln muss, aber jetzt habe ich das Problem, dass er in Zeile 262 behauptet, 1 und 4 wären gleich, und somit das ganze als unverändert annimmt, obwohl es gespeichert ist
PS:
der Quelltext is noch nicht fertig und an vielen anderenstellen auch noch fehlerhaft, hanz abgesehen, dass manan vielen stellen mit einem bruchteil an aufwand das selbe Ergebnis erzielen könnte
Quelltext
#cs ----------------------------------------------------------------
Script Version : 0.1
Author : inventor <[email='stefan.thomas@famthomas.net'][/email]>
#ce ----------------------------------------------------------------
#region Optionen und Includes
Opt("MustDeclareVars", 1)
Opt("GUIOnEventMode", 1)
Opt("GUIcloseonESC", 0)
#include <GUIConstants.au3>
#include <GuiStatusBar.au3>
#include <WindowsConstants.au3>
#include <DateTimeConstants.au3>
Opt("GUIResizeMode", $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
#endregion Optionen und Includes
#region Variablen
[/autoit] [autoit][/autoit] [autoit]Global $GUI
[/autoit] [autoit][/autoit] [autoit]Global $ID[3][9]
[/autoit] [autoit][/autoit] [autoit]Global $status_width[2]
$status_width[0] = 75
$status_width[1] = 425
Global $status
Global $stat_newtext
Global $men_datei
Global $men_open
Global $men_speichern
Global $men_speichernunter
Global $men_beenden
Global $men_ask
Global $men_help
Global $saved = False
Global $savepath = ""
Global $openpath = "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}"
Global $file_msg
Global $file_hnd
Global $save_msg
Global $save_inhalt
Global $save_return
Global $savedinhalt[3][9]
Global $savedtext
Global $savedwrite
Global $i
Global $save_dialogmsg
[/autoit] [autoit][/autoit] [autoit]Global $end_msg
[/autoit] [autoit][/autoit] [autoit]Global $keystate = 0
Global $oldkeystate = 1
Global $helpkeystate = 1
Global Const $Kopf = "<html>" & @CRLF & " <head>" & @CRLF & ' <title>SSD JEG - Startseite</title>' & @CRLF & @CRLF & ' <meta name="author" content="Stefan Thomas">' & @CRLF & ' <meta name="robots" content="noindex, nofollow">' & @CRLF & @CRLF & ' <link rel="stylesheet" href="./css/index.css" type="text/css">' & @CRLF & ' <link rel="stylesheet" href="./css/all.css" type="text/css">' & @CRLF & @CRLF & ' <link rel="shortcut icon" href="./graphics/SSD_logo_2_icon.gif">' & @CRLF & ' </head>' & @CRLF & ' <body>' & @CRLF & ' <div id="logo">' & @CRLF & ' <a href="./">' & @CRLF & ' <img src="./graphics/SSD_logo_2_200.gif" width="150" height="150" alt="Logo" >' & @CRLF & ' </a>' & @CRLF & ' </div>' & @CRLF & ' <div id="titel">' & @CRLF & ' <h1>Schulsanitätsdienst des JEG</h1>' & @CRLF & ' </div>' & @CRLF & ' <div id="nav">' & @CRLF & ' <h2> Navigation</h2>' & @CRLF & ' <div class="nav-aktuell" id="nav-startseite">' & @CRLF & ' Startseite' & @CRLF & ' </div>' & @CRLF & ' <div class="nav-norm" id="nav-kurzel">' & @CRLF & ' <a href="kurzel.html">Namenskürzel</a>' & @CRLF & ' </div>' & @CRLF & ' <div class="nav-norm" id="nav-impress">' & @CRLF & ' <a href="impressum.html">Impressum</a>' & @CRLF & ' </div>' & @CRLF & ' <div class="nav-norm" id="nav-kalender">' & @CRLF & ' <a href="https://www.google.com/calendar/embed?src=8sjq1lk0qmofoa63tvh1j7bh64%40group.calendar.google.com&ctz=Europe%2FBerlin" target="_blank">Kalender</a>' & @CRLF & ' </div>' & @CRLF & ' </div>' & @CRLF & ' <div id="main-container">' & @CRLF & ' <div id="main-aktuell">' & @CRLF & ' <h3>Aktuelles:</h3>' & @CRLF & @CRLF
Global Const $Footer = ' </div>' & @CRLF & ' </div>' & @CRLF & ' </body>' & @CRLF & '</html>'
Global $hgui
Global $help = False
Global $GUIhwd
Global $WMID
Global $wparam
Global $iparam
Global $open_filehwnd
Global $open_file
#endregion Variablen
#region Initialisierung
$GUI = GUICreate("SSD-Website-Editor", 600, 700, -1, -1, $WS_Maximizebox + $WS_Minimizebox)
GUISetOnEvent($GUI_EVENT_CLOSE, "beenden")
$men_datei = GUICtrlCreateMenu("Datei ")
$men_open = GUICtrlCreateMenuItem("Öffnen", $men_datei,0)
GUICtrlSetOnEvent($men_open, "offnen")
$men_speichern = GUICtrlCreateMenuItem("Speichern", $men_datei, 1)
GUICtrlSetOnEvent($men_speichern, "save")
$men_speichernunter = GUICtrlCreateMenuItem("Speichern unter", $men_datei, 2)
GUICtrlSetOnEvent($men_speichernunter, "saveunder")
$men_beenden = GUICtrlCreateMenuItem("Beenden", $men_datei, 3)
GUICtrlSetOnEvent($men_beenden, "beenden")
$men_ask = GUICtrlCreateMenu(" ? ")
$men_help = GUICtrlCreateMenuItem("Hilfe ", $men_ask, 1)
GUICtrlSetOnEvent($men_help, "help")
GUICtrlCreateGroup("Aktuelles:", 10, 10, 570, 135)
GUICtrlCreateLabel("Diese Woche haben", 15, 30, 100, 20)
$ID[0][0] = GUICtrlCreateInput("", 117, 28, 150, 18)
GUICtrlCreateLabel("und", 270, 30, 20, 20)
$ID[0][1] = GUICtrlCreateInput("", 292, 28, 150, 18)
GUICtrlCreateLabel("Dienst.", 445, 30, 40, 20)
GUICtrlCreateLabel("Ersatz ist", 15, 55, 45, 20)
$ID[0][2] = GUICtrlCreateInput("", 62, 53, 150, 18)
$ID[0][3] = GUICtrlCreateCheckbox("Nächsten Termin angeben", 15, 85, 150, 20)
$ID[0][4] = GUICtrlCreateLabel("Das nächste Treffen ist am", 35, 110, 130, 20)
$ID[0][5] = GUICtrlCreateDate(@YEAR & "/" & @MON & "/" & @MDAY, 170, 108, 100, 20, $DTS_SHORTDATEFORMAT)
GUICtrlCreateGroup("Zukünftiges:", 10, 145 + 10, 570, 135)
GUICtrlCreateLabel("Nächste Woche haben", 15, 145 + 30, 115, 20)
$ID[1][0] = GUICtrlCreateInput("", 132, 145 + 28, 150, 18)
GUICtrlCreateLabel("und", 285, 145 + 30, 20, 20)
$ID[1][1] = GUICtrlCreateInput("", 307, 145 + 28, 150, 18)
GUICtrlCreateLabel("Dienst.", 460, 145 + 30, 40, 20)
GUICtrlCreateLabel("Ersatz ist", 15, 145 + 55, 45, 20)
$ID[1][2] = GUICtrlCreateInput("", 62, 145 + 53, 150, 18)
$ID[1][3] = GUICtrlCreateCheckbox("Nächsten Termin angeben", 15, 145 + 85, 150, 20)
$ID[1][4] = GUICtrlCreateLabel("Das", 35, 145 + 110, 20, 20)
$ID[1][5] = GUICtrlCreateRadio("nächste", 65, 145 + 102, 55, 20)
$ID[1][6] = GUICtrlCreateRadio("übernächste", 65, 145 + 118, 75, 20)
$ID[1][7] = GUICtrlCreateLabel("Treffen ist am", 150, 145 + 110, 100, 20)
$ID[1][8] = GUICtrlCreateDate(@YEAR & "/" & @MON & "/" & @MDAY, 220, 145 + 108, 100, 20, $DTS_SHORTDATEFORMAT)
$ID[2][0] = GUICtrlCreateEdit("", 10, 300, 575, 310)
GUICtrlSetResizing($ID[2][0], $GUI_DOCKAUTO)
$status = _GUIctrlstatusbar_create($GUI, $status_width)
_GUICtrlStatusBar_SetText($status, " Gespeichert", 0)
$saved = True
For $x = 0 To 2 Step 1
For $y = 0 To 8 Step 1
$savedinhalt[$x][$y] = GUICtrlRead($ID[$x][$y])
If ($x == 0 And $y == 5) Then
ExitLoop
ElseIf($x == 2 And $y == 0) Then
ExitLoop
EndIf
Next
Next
GUISetState(@SW_SHOW, $GUI)
[/autoit] [autoit][/autoit] [autoit]GUIRegisterMsg($WM_ACTIVATE, "checkfokus")
[/autoit] [autoit][/autoit] [autoit]AdlibRegister("status_resize", 250)
AdlibRegister("testifsaved", 301)
AdlibRegister("shownext", 300)
$keystate = 1
keystate()
#endregion Initialisierung
#region Hauptprogramm
[/autoit] [autoit][/autoit] [autoit]While 1
Sleep(1000)
WEnd
#endregion Hauptprogramm
[/autoit] [autoit][/autoit] [autoit]#region Funktionen
[/autoit] [autoit][/autoit] [autoit]#region Speichern
[/autoit] [autoit][/autoit] [autoit]Func men_saveunder()
status("Speichere")
$save_return = saveunder ()
If ($save_return == -1) Then
Return -1
Else
save ()
EndIf
EndFunc
Func save()
status("Speichere")
If ($savepath == "") Then
saveunder ()
EndIf
$file_msg = FileOpen($savepath & "\index.html", 2 +
If ($file_msg == -1) Then
Return -2 ; Fehler beim öffnen der Datei
Else
$file_hnd = $file_msg
EndIf
write($Kopf)
For $x = 0 To 2 Step 1
For $y = 0 To 8 Step 1
$savedinhalt[$x][$y] = GUICtrlRead($ID[$x][$y])
If ($x == 0 And $y == 5) Then
ExitLoop
ElseIf($x == 2 And $y == 0) Then
ExitLoop
EndIf
Next
Next
write(' Diese Woche haben <font color="00ff00">' & $savedinhalt[0][0] & '</font> und <font color="00ff00">' & $savedinhalt[0][1] & '</font> Dienst.<br>' & @CRLF)
write(' Ersatz ist <font color="00ff00">' & $savedinhalt[0][2] & '</font>.<br> ' & @CRLF)
If $savedinhalt[0][3] = $GUI_CHECKED Then
write(' Das nächste Treffen ist am <font color="00ff00">' & GUICtrlRead($ID[0][5]) & '</font>')
EndIf
write(' </div>' & @CRLF)
write(' <div id="main-demnaechst">' & @CRLF & ' <h3>Zukünftiges:</h3>' & @CRLF & @CRLF)
write(' Nächste Woche haben <font color="00ff00">' & $savedinhalt[1][0] & '</font> und <font color="00ff00">' & $savedinhalt[1][1] & '</font> Dienst. <br>' & @CRLF)
write(' Ersatz ist <font color="00ff00">' & $savedinhalt[1][2] & '</font>.<br>' & @CRLF)
If $savedinhalt[1][3] = $GUI_CHECKED Then
If $savedinhalt[1][4] = $GUI_CHECKED Then
write(' Das nächste Treffen ist am <font color="00ff00">' & GUICtrlRead($ID[1][8]) & '</font>' & @CRLF)
Else
write(' Das übernächste Treffen ist am <font color="00ff00">' & GUICtrlRead($ID[1][8]) & '</font>' & @CRLF)
EndIf
EndIf
write(' </div>' & @CRLF & @CRLF & ' <div id="main-news">' & @CRLF)
$savedtext = $savedinhalt[2][0]
$savedtext = StringSplit($savedtext, @CRLF, 1)
For $i = 1 To $savedtext[0] Step 1
$savedtext[$i] = $savedtext[$i] & @CRLF
$savedtext[$i] = StringReplace($savedtext[$i], "&", "&", 1)
$savedtext[$i] = StringReplace($savedtext[$i], "ä", "ä", 1)
$savedtext[$i] = StringReplace($savedtext[$i], "Ä", "Ä", 1)
$savedtext[$i] = StringReplace($savedtext[$i], "ü", "ü", 1)
$savedtext[$i] = StringReplace($savedtext[$i], "Ü", "Ü", 1)
$savedtext[$i] = StringReplace($savedtext[$i], "ö", "ö", 1)
$savedtext[$i] = StringReplace($savedtext[$i], "Ö", "Ö", 1)
$savedtext[$i] = StringReplace($savedtext[$i], "ß", "ß", 1)
If StringInStr($savedtext[$i], "[trenner]") Then
$savedtext[$i] = StringReplace($savedtext[$i], "[trenner]" & @CRLF, '<hr class="trenner">' & @CRLF)
Else
$savedtext[$i] = StringReplace($savedtext[$i], @CRLF, "<br>" & @CRLF)
EndIf
$savedwrite = $savedwrite & ' ' & $savedtext[$i]
Next
write($savedwrite)
write($Footer)
FileClose($file_hnd)
status("")
EndFunc
Func saveunder()
status("Speichere")
Do
$save_msg = FileOpenDialog("SSD-Website-Editor", $openpath,"Html-Dateien (*.html; *.htm)|Alle Dateien (*.*)", 1 + 4, "index.html", $GUI)
If ($save_msg == "") Then
If (@error == 1) Then
status("Speichern abgebrochen")
Return -1
EndIf
Else
$savepath = $save_msg
EndIf
Until(FileExists($savepath))
EndFunc
Func testifsaved()
For $x = 0 To 2 Step 1
For $y = 0 To 7 Step 1
;status("read : " & GUICtrlRead($ID[0][3]) & " saved : " & $savedinhalt[0][3])
If Not GUICtrlRead($ID[$x][$y]) == $savedinhalt[$x][$y] Then
_GUICtrlStatusBar_SetText($status, "Geändert", 0)
$saved = False
Return False
EndIf
If ($x == 0 And $y == 5) Then
ExitLoop
ElseIf($x == 2 And $y == 0) Then
ExitLoop
EndIf
Next
Next
_GUICtrlStatusBar_SetText($status, "Gespeichert", 0)
$saved = True
Return True
EndFunc
Func write($save_inhalt)
FileWrite($file_hnd, $save_inhalt)
EndFunc
#endregion Speichern
#region Laden
[/autoit] [autoit][/autoit] [autoit]Func offnen()
While 1
$save_dialogmsg = FileOpenDialog("SSD-Website-Editor", "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}", "HTML-Dateien (*.html; *.htm)|Alle Dateien (*.*)", 3, "index.html", $GUI)
If (@error) Then
Return -1 ; Öffnen Abgebrochen
Else
$openpath = $save_dialogmsg
ExitLoop
EndIf
WEnd
Laden()
EndFunc
Func Laden()
MsgBox(0, "SSD-Website-Editor", $openpath)
$open_filehwnd = FileOpen($openpath)
MsgBox(0, "SSD-Website-Editor", $open_filehwnd)
$open_file = FileRead($open_filehwnd)
FileClose($open_filehwnd)
MsgBox(0, "SSD-Website-Editor", $open_file)
$open_file = StringReplace($open_file, $Kopf, "")
MsgBox(0, "SSD-Website-Editor", $open_file)
$open_file = StringReplace($open_file, $Footer, "")
GUICtrlSetData($ID[2][0], $open_file)
EndFunc
#endregion Laden
[/autoit] [autoit][/autoit] [autoit]#region Window-funktionen
[/autoit] [autoit][/autoit] [autoit]Func beenden()
If ($saved == False) Then
$end_msg = MsgBox(3 + 32 + 4096, "Newsedit - Speichern?", "Sie haben ihre Datei noch nicht gespeichert, wollen sie das jetzt tun?")
If ($end_msg == 2) Then ;Abbrechen
Return
ElseIf($end_msg == 7) Then
end()
Else
If (men_save() == -1) Then
Return
EndIf
end()
EndIf
Else
end()
EndIf
EndFunc
Func end()
Exit
EndFunc
Func shownext()
If (GUICtrlRead($ID[0][3]) == $GUI_UNCHECKED) Then
GUICtrlSetState($ID[0][4], $GUI_HIDE)
GUICtrlSetState($ID[0][5], $GUI_HIDE)
Else
GUICtrlSetState($ID[0][4], $GUI_SHOW)
GUICtrlSetState($ID[0][5], $GUI_SHOW)
EndIf
If (GUICtrlRead($ID[1][3]) == $GUI_UNCHECKED) Then
GUICtrlSetState($ID[1][4], $GUI_HIDE)
GUICtrlSetState($ID[1][5], $GUI_HIDE)
GUICtrlSetState($ID[1][6], $GUI_HIDE)
GUICtrlSetState($ID[1][7], $GUI_HIDE)
GUICtrlSetState($ID[1][8], $GUI_HIDE)
Else
GUICtrlSetState($ID[1][4], $GUI_SHOW)
GUICtrlSetState($ID[1][5], $GUI_SHOW)
GUICtrlSetState($ID[1][6], $GUI_SHOW)
GUICtrlSetState($ID[1][7], $GUI_SHOW)
GUICtrlSetState($ID[1][8], $GUI_SHOW)
EndIf
EndFunc
Func checkfokus($GUIhwnd, $WMID, $wparam, $iparam)
If not $wparam == 0 Then
$keystate = 1
keystate ()
Else
$keystate = 0
keystate()
EndIf
EndFunc
Func status($stat_newtext = "")
_GUICtrlStatusBar_SetText($status, $stat_newtext, 1)
EndFunc
Func status_resize()
_GUICtrlStatusBar_Resize($status)
EndFunc
Func keystate()
Switch $keystate
Case 1
HotKeySet("^s", "men_save")
HotKeySet("^+s", "saveunder")
HotKeySet("{F1}", "help")
HotKeySet("^h", "help")
HotKeySet("^o", "offnen")
Case 0
HotKeySet("^s")
HotKeySet("^+s")
HotKeySet("{F1}")
HotKeySet("^h")
HotKeySet("^o")
EndSwitch
status("Keystate : "&$keystate)
EndFunc
#endregion Window-funktionen
[/autoit] [autoit][/autoit] [autoit]#region Hilfe
[/autoit] [autoit][/autoit] [autoit]Func help()
$help = True
$hgui = GUICreate("Newsedit - Hilfe", 400, 350, -1, -1, $WS_CHILD + $WS_MINIMIZEBOX + $WS_CAPTION + $WS_POPUP + $WS_SYSMENU, -1, $GUI)
GUISetOnEvent($GUI_EVENT_CLOSE, "hclose", $hgui)
GUICtrlCreateTab(20, 20, 360, 310)
GUICtrlCreateTabItem("Allgemein")
GUICtrlCreateLabel("Der SSD-Website-Editor ist ein kostenloses Programm, um die Startseite für die Homepage des Schulsanitätsdienstes des Josef Effner Gymnasiums Dachau zu bearbeiten.", 35, 60, 330, 50)
#cs GUICtrlCreateTabItem("Tastenkürzel")
GUICtrlCreateLabel("Hilfe : F1 oder STRG+H", 35, 60, 330, 20)
GUICtrlCreateLabel("Speichern : STRG+S", 35, 80, 330, 20)
GUICtrlCreateLabel("Speichern unter : STRG+SHIFT+S", 35, 100, 330, 20)
#ce
GUICtrlCreateTabItem("Schlüsselwörter")
GUICtrlCreateLabel("[trenner] : Fügt an der entsprechenden Stelle eine Trennlinie ein" & @CRLF & " muss allein in einer Zeile stehen!!", 35, 60, 330, 40)
GUICtrlCreateLabel("Zeilenumbrüche und die meisten Umlaute (ä, ö, ü, ß) werden automatisch in die entsprechenden HTML-Codes umgewandelt.", 35, 100, 330, 40)
GUICtrlCreateLabel("Es können sämtliche HTML-Tags verwendet werden", 35, 140, 330, 20)
GUICtrlCreateTabItem("Über")
GUICtrlCreateLabel("Version : 0.2", 35, 60, 330, 20)
GUICtrlCreateLabel("Autor : Stefan Thomas", 35, 80, 330, 20)
GUICtrlCreateLabel("E-mail : stefan.thomas@famthomas.net", 35, 100, 330, 20)
GUICtrlCreateLabel("Dies ist die zweite, komplett überarbeitete, Version, in der einige Features, wie zum Beispiel das Laden von Dateien oder die Anzeige des Speicherzustands , noch nicht voll funktionsfähig sind.", 35, 150, 330, 50)
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_ACTIVATE, "checkhelpfokus")
EndFunc
Func checkhelpfokus($GUIhwnd, $WMID, $wparam, $iparam)
If not $wparam == 0 Then
HotKeySet("{ESC}", "hclose")
Else
HotKeySet("{ESC}")
EndIf
EndFunc
Func hclose()
GUIDelete($hgui)
$help = False
EndFunc
#endregion Hilfe
#endregion Funktionen