Ich mal wieder^^
Ich hatte ja Relaunch von meiner Homepage, und daraus entstand folgendes Programm:
Spoiler anzeigen
#include <GuiListBox.au3>
#include <File.au3>
#include <GUIConstantsEx.au3>
#include <String.au3>
$anfang = IniRead("data.ini", "Main", "anfang", "")
$ende = IniRead("data.ini", "Main", "ende", "")
$combo = IniRead("data.ini", "Main", "combo", "Zeitformat")
$pfad = IniRead("data.ini", "Main", "pfad", "")
$Form1 = GUICreate("HP-Aktualizer by Padmak", 625, 396, 193, 125)
$Input3 = GUICtrlCreateInput($pfad, 8, 32, 241, 21)
$Label1 = GUICtrlCreateLabel("Anfangs-HTML:", 8, 192, 79, 17)
$Label2 = GUICtrlCreateLabel("End-HTML:", 8, 248, 59, 17)
$Input1 = GUICtrlCreateInput($anfang, 8, 216, 601, 21)
$Input2 = GUICtrlCreateInput($ende, 8, 272, 601, 21)
$Progress1 = GUICtrlCreateProgress(8, 360, 598, 25)
$Label3 = GUICtrlCreateLabel("Aktuelle Datei: ", 8, 336, 76, 17)
$Label4 = GUICtrlCreateLabel("", 88, 336, 353, 17)
$Button1 = GUICtrlCreateButton("Aktualisieren", 160, 304, 75, 25, 0)
$Combo1 = GUICtrlCreateCombo($combo, 8, 304, 145, 25)
GUICtrlSetData(-1, "TT.MM.JJJJ|TT.MM.JJJJ HH:MM|HH:MM TT.MM.JJJJ")
$Label5 = GUICtrlCreateLabel("Ordner wählen:", 8, 8, 76, 17)
$Button2 = GUICtrlCreateButton("...", 256, 32, 27, 21, 0)
$List1 = GUICtrlCreateList("", 8, 88, 361, 97)
$Label6 = GUICtrlCreateLabel("HTML-Dateien im Ordner:", 8, 64, 125, 17)
If $pfad <> "" Then
$file = _FileListToArray($pfad, "*.html")
If $file[0] < 1 Then
Else
GUICtrlSetData($Input3, $pfad)
For $i = 1 To $file[0]
_GUICtrlListBox_AddString($List1, $file[$i])
Next
EndIf
EndIf
GUISetState()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
$anfang = GUICtrlRead($Input1)
$ende = GUICtrlRead($Input2)
If $anfang = "" Then
GUICtrlSetData($Input1, "Bitte etwas eintragen")
ContinueLoop
ElseIf $ende = "" Then
GUICtrlSetData($Input2, "Bitte etwas eintragen")
ContinueLoop
EndIf
_VorRefresh()
Case $Button2
_Search()
EndSwitch
WEnd
Func _VorRefresh()
$read = GUICtrlRead($Combo1)
$anfang = GUICtrlRead($Input1)
$ende = GUICtrlRead($Input2)
$pfad = GUICtrlRead($Input3)
If $read = "Zeitformat" Then Return MsgBox(0, "Fehler", "Bitte Zeitformat wählen")
IniWrite("data.ini", "Main", "anfang", $anfang)
IniWrite("data.ini", "Main", "ende", $ende)
IniWrite("data.ini", "Main", "combo", $read)
IniWrite("data.ini", "Main", "pfad", $pfad)
Switch $read
Case "TT.MM.JJJJ"
$format = @MDAY & "." & @MON & "." & @YEAR
_Refresh($format, GUICtrlRead($Input1), GUICtrlRead($Input2))
Case "TT.MM.JJJJ HH:MM"
$format = " am " & @MDAY & "." & @MON & "." & @YEAR & " um " & @HOUR & ":" & @MIN & " "
_Refresh($format, GUICtrlRead($Input1), GUICtrlRead($Input2))
Case "MM:HH TT.MM.JJJJ"
$format = " um " & @HOUR & ":" & @MIN & " am " & @MDAY & "." & @MON & "." & @YEAR
_Refresh($format, GUICtrlRead($Input1), GUICtrlRead($Input2))
EndSwitch
EndFunc ;==>_VorRefresh
Func _Search()
GUICtrlSetData($List1, "")
$ordner = FileSelectFolder("Ordner wählen", "")
If $ordner = "" Then Return
Global $file = _FileListToArray($ordner, "*.html")
If $file[0] < 1 Then
MsgBox(0, "Fehler", "Keine HTML-Dateien vorhanden. Bitte ein Verzeichnis mit HTML-Dateien wählen.")
Return
EndIf
GUICtrlSetData($Input3, $ordner)
For $i = 1 To $file[0]
_GUICtrlListBox_AddString($List1, $file[$i])
Next
EndFunc ;==>_Search
Func _Refresh($sFormat, $sReplaceStart, $sReplaceEnd)
$string = ""
$pfad = GUICtrlRead($Input3)
If $pfad = "" Then Return
For $i = 1 To $file[0]
GUICtrlSetData($Label4, $file[$i])
$datei = FileOpen($pfad & "\" & $file[$i], 0)
$inhalt = FileRead($datei)
$between = _StringBetween($inhalt, $sReplaceStart, $sReplaceEnd)
$progress = 100 * ($i / $file[0])
GUICtrlSetData($Progress1, $progress)
Sleep(100)
If $between <> 0 Then
$string = StringReplace($inhalt, $sReplaceStart & $between[0], $sReplaceStart & $sFormat)
Else
$string = StringReplace($inhalt, $sReplaceStart, $sReplaceStart & $sFormat)
EndIf
FileClose($datei)
$datei = FileOpen($pfad & "\" & $file[$i], 2)
FileWrite($datei, $string)
FileClose($datei)
Next
AdlibEnable("_delete", 1000)
EndFunc ;==>_Refresh
Func _delete()
GUICtrlSetData($Progress1, 0)
GUICtrlSetData($Label4, "Erfolgreich")
AdlibDisable()
EndFunc ;==>_delete
Nehmen wir einmal an, man hat (lokal) seine Homepage in einem Ordner.
Und man möchte, jedes mal vorm Upload, das letzte Änderungsdatum hinzufügen.
Dafür ist dann mein Programm zuständig.
Man wählt den Ordner mit den .html-Dateien aus den man haben will.
Dann tauchen alle .html-Dateien in der ListBox auf.
Nun nur noch unten in die beiden Inputs den Start-Quellcode bzw den End-Quellcode eintragen
wenn z.B. die Zeile so ausschaut:
<td style="text-align: center;"><span style="font-family: Arial;">Last edited: am 26.02.2009 um 15:40 Uhr</span></td>
In diesem Fall wäre es so wie hier:
autoit.de/wcf/attachment/4013/
Viel Spaß und ein wenig Feedback bitte
[schleichwerbung]
Natürlich könnt ihr das Ergebnis auch online anschaun *hust*
[/schleichwerbung]
Padmak
Ps: Hoffentlich interessiert DIESES Programm mal irgendwen