HTML Code verarbeiten

  • Hallo zusammen ich bin neu und stelle gleich mal ne Frage. :)

    Ich probiere schon länger einen HTML Code den ich über inetread ansehen kann so zu verwerten dass ich einzelne Parts die aber ihre Position verändern Auslese.
    Ich weiß nicht wirklich weiter und habe bis auf inetread +URL noch keinen Code den ich Posten könnte. ?(

    Weisheit einer ne Idee wie ich das machen kann?
    Es geht um einen Stundenplan der auf Ausfall und Vertretung überprüft werden soll...
    Die URL ist: http://tellkampf1.dyndns.org/Vertretungspla…23/w/w00021.htm

    Danke für die Hilfe :thumbup:

    3 Mal editiert, zuletzt von Basti2022 (10. Juni 2012 um 13:44)

  • Das ist jetzt nicht dein Ernst oder? Ich finde es ja schon länger ziemlich ****, dass einige User meinen sie müssten alle ihre Threads immer in 'beiden' Foren posten zu müssen. Aber das finde ich persönlich jetzt schon ziemlich daneben. In eben diesem bestimmten Anderen Forum hast du eben mal erst nach 20 Minuten eine Antwort bekommen und deshalb wird dann sofort in diesem Forum der Nächste Thread aufgemacht??? Also ich weis ja nicht welche Logik dahinter steckt, aber es kann doch wirklich nicht angehen, dass zu einem einzigen Vorhaben jetzt schon 3 Threads existieren!
    Sorry aber DAS musste jetzt mal raus... :whistling:

    LG
    Christoph :)

  • Wenn du nur den Stunden-Plan haben willst, schau dir den Bereich zw.

    Code
    <table class="subst" >

    und

    Code
    </table>

    an.
    Der Rest ist eigentlich nicht schwer. Such einfach wie bereits gesagt wurde
    mit den Stringfunktionen nach den Feldern im Plan.

    [autoit]


    Func Ulam($n)
    Return 1
    EndFunc

    [/autoit]


    Rekursion FTW :D

  • @ Cheater Dieter

    Ich will wissen ob ein Entfall oder eine Vertretung angesetzt ist...

    Dazu muss ich das zerlegen ich weiß nur weiß ich nicht woher ich den Strigbekomme sprich was da in die Funktion geschrieben werden muss...

  • Schonmal ein kleiner Ansatz:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <String.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Global $aTimetable[1][7] = [["Klasse(n)", "Stunde", "(Fach)", "Vertreter", "Fach", "Raum", "Art"]]

    [/autoit] [autoit][/autoit] [autoit]

    $sSource = InetRead("http://tellkampf1.dyndns.org/Vertretungsplan_SuS/23/w/w00021.htm")

    [/autoit] [autoit][/autoit] [autoit]

    $aSB = _StringBetween(BinaryToString($sSource), '<table class="subst" >', "</table>")

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To UBound($aSB) - 1
    If StringInStr($aSB[$i], "Klasse")Then
    $aSB = _StringBetween($aSB[$i], '" >', "</td>")
    ReDim $aTimetable[(UBound($aSB) / 7) + 1][7]
    For $k = 0 To UBound($aSB) - 1
    $aTimetable[Int($k / 7) + 1][$k - (Int($k / 7) * 7)] = $aSB[$k]
    Next
    _ArrayDisplay($aTimetable)
    EndIf
    Next

    [/autoit]
  • Weil mir grad eh stink langweilig is, hier ma ein Ansatz mit ner riesigen RegExp :) :

    Spoiler anzeigen
    [autoit]

    #include <Inet.au3>
    #include <String.au3>
    #include <Array.au3>
    $sSource = _INetGetSource('http://tellkampf1.dyndns.org/Vertretungsplan_SuS/23/w/w00021.htm')
    $sPattern = '<tr class=''list (?:odd|even)''><td class="list" align="center" style="background-color: #(?:FF8080|80FF80)" >(.+?)</td>' & _
    '<td class="list" align="center" style="background-color: #(?:FF8080|80FF80)" >(.+?)</td><td class="list" align="center" style="background-color: #(?:FF8080|80FF80)" >(.+?)' & _
    '</td><td class="list" align="center" style="background-color: #(?:FF8080|80FF80)" >(.+?)</td><td class="list" align="center" style="background-color: #(?:FF8080|80FF80)" >(.+?)' & _
    '</td><td class="list" align="center" style="background-color: #(?:FF8080|80FF80)" >(.+?)</td><td class="list" align="center" style="background-color: #(?:FF8080|80FF80)" >(.+?)</td></tr>'
    $aRegExp = StringRegExp($sSource, $sPattern, 3)
    Dim $aResult[Int(UBound($aRegExp)/7)][7]
    For $iI = 0 To UBound($aResult)-1
    For $iJ = 0 To 6
    $aResult[$iI][$iJ] = $aRegExp[$iI*7+$iJ]
    Next
    Next
    _ArrayDisplay($aResult)

    [/autoit]
    Zitat

    You just keep on trying 'till you run out of cake. ;)


    [STEAM] Source UDF

    Einmal editiert, zuletzt von K4z (7. Juni 2012 um 21:21)

  • Und hier wenn mehrere Pläne vorhanden sind:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <String.au3>
    #include <GuiListView.au3>
    #include <GUIConstantsEx.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Global $iThirdDim = 0
    Global $aTimetable[1][7][1]

    [/autoit] [autoit][/autoit] [autoit]

    $sSource = InetRead("http://tellkampf1.dyndns.org/Vertretungsplan_SuS/23/w/w00021.htm")

    [/autoit] [autoit][/autoit] [autoit]

    Global $sTest = '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">' & _
    '<html>' & _
    '<head>' & _
    '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><meta http-equiv="expires" content="0"><meta name="keywords" content="Stundenplan, timetable">' & _
    '<meta name="GENERATOR" content="Untis 2012">' & _
    '<title>Untis 2012 Stundenplan 2011/12 Tellkampfschule Hannover 1</title>' & _
    '<style type="text/css">' & _
    'a {color:#000000;}' & _
    '</style>' & _
    '<link rel="stylesheet" href="../../untisinfo.css" type="text/css">' & _
    '</head>' & _
    '<body bgcolor="#FFFFFF">' & _
    '<CENTER><font size="3" face="Arial">' & _
    '<BR><h2>10b</h2><p><div id="vertretung">' & _
    '<a name="1">&nbsp;</a><br><b>4.6. Montag</b> | <a href="#2">[ Dienstag ]</a> | <a href="#3">[ Mittwoch ]</a> | <a href="#4">[ Donnerstag ]</a> | <a href="#5">[ Freitag ]</a><p>' & _
    '<table class="subst" >' & _
    '<tr><td align="center" colspan="7" >Vertretungen sind nicht freigegeben</td></tr>' & _
    '</table>' & _
    '<p>' & _
    '<a name="2">&nbsp;</a><br><a href="#1">[ Montag ]</a> | <b>5.6. Dienstag</b> | <a href="#3">[ Mittwoch ]</a> | <a href="#4">[ Donnerstag ]</a> | <a href="#5">[ Freitag ]</a><p>' & _
    '<table class="subst" >' & _
    '<tr><td align="center" colspan="7" >Vertretungen sind nicht freigegeben</td></tr>' & _
    '</table>' & _
    '<p>' & _
    '<a name="3">&nbsp;</a><br><a href="#1">[ Montag ]</a> | <a href="#2">[ Dienstag ]</a> | <b>6.6. Mittwoch</b> | <a href="#4">[ Donnerstag ]</a> | <a href="#5">[ Freitag ]</a><p>' & _
    '<table border="3" rules="all" bgcolor="#F4F4F4" cellpadding="3" cellspacing="3">' & _
    '<tr><th align="center" colspan="2">Nachrichten zum Tag</th></tr>' & _
    '<tr><td colspan="2">Frühbereitschaft: LOE/MEI</td></tr><br></table>' & _
    '<p>' & _
    '<table class="subst" >' & _
    '<tr><td align="center" colspan="7" >Keine Vertretungen</td></tr>' & _
    '</table>' & _
    '<p>' & _
    '<a name="4">&nbsp;</a><br><a href="#1">[ Montag ]</a> | <a href="#2">[ Dienstag ]</a> | <a href="#3">[ Mittwoch ]</a> | <b>7.6. Donnerstag</b> | <a href="#5">[ Freitag ]</a><p>' & _
    '<table border="3" rules="all" bgcolor="#F4F4F4" cellpadding="3" cellspacing="3">' & _
    '<tr><th align="center" colspan="2">Nachrichten zum Tag</th></tr>' & _
    '<tr><td colspan="2">Frühbereitschaft: HOF/ILN</td></tr><br></table>' & _
    '<p>' & _
    '<table class="subst" >' & _
    '<tr class="list"><th class="list" align="center">Klasse(n)</th><th class="list" align="center">Stunde</th><th class="list" align="center">(Fach)</th><th class="list" align="center">Vertreter</th><th class="list" align="center">Fach</th><th class="list" align="center">Raum</th><th class="list" align="center">Art</th></tr>' & _
    '<tr class="list odd"><td class="list" align="center" style="background-color: #FF8080" >10b</td><td class="list" align="center" style="background-color: #FF8080" >3</td><td class="list" align="center" style="background-color: #FF8080" >Ma</td><td class="list" align="center" style="background-color: #FF8080" >RUD</td><td class="list" align="center" style="background-color: #FF8080" >Ch</td><td class="list" align="center" style="background-color: #FF8080" >A2.3</td><td class="list" align="center" style="background-color: #FF8080" >Verlegung</td></tr>' & _
    '<tr class="list even"><td class="list" align="center" style="background-color: #FF8080" >10b</td><td class="list" align="center" style="background-color: #FF8080" >4</td><td class="list" align="center" style="background-color: #FF8080" >Ma</td><td class="list" align="center" style="background-color: #FF8080" >RUD</td><td class="list" align="center" style="background-color: #FF8080" >Ch</td><td class="list" align="center" style="background-color: #FF8080" >A2.3</td><td class="list" align="center" style="background-color: #FF8080" >Verlegung</td></tr>' & _
    '<tr class="list odd"><td class="list" align="center" style="background-color: #FF8080" >10a, 10b, 10c, 10d</td><td class="list" align="center" style="background-color: #FF8080" >5 - 6</td><td class="list" align="center" style="background-color: #FF8080" >RK</td><td class="list" align="center" style="background-color: #FF8080" >???</td><td class="list" align="center" style="background-color: #FF8080" >RK</td><td class="list" align="center" style="background-color: #FF8080" >E0.1</td><td class="list" align="center" style="background-color: #FF8080" >Vertretung</td></tr>' & _
    '<tr class="list even"><td class="list" align="center" style="background-color: #FF8080" >10a, 10b, 10c, 10d</td><td class="list" align="center" style="background-color: #FF8080" >5 - 6</td><td class="list" align="center" style="background-color: #FF8080" >Re1</td><td class="list" align="center" style="background-color: #FF8080" >???</td><td class="list" align="center" style="background-color: #FF8080" >Re1</td><td class="list" align="center" style="background-color: #FF8080" >A2.1</td><td class="list" align="center" style="background-color: #FF8080" >Vertretung</td></tr>' & _
    '<tr class="list odd"><td class="list" align="center" style="background-color: #80FF80" >10b</td><td class="list" align="center" style="background-color: #80FF80" >7</td><td class="list" align="center" style="background-color: #80FF80" >Ch</td><td class="list" align="center" style="background-color: #80FF80" >---</td><td class="list" align="center" style="background-color: #80FF80" >---</td><td class="list" align="center" style="background-color: #80FF80" >---</td><td class="list" align="center" style="background-color: #80FF80" >Entfall</td></tr>' & _
    '<tr class="list even"><td class="list" align="center" style="background-color: #80FF80" >10b</td><td class="list" align="center" style="background-color: #80FF80" >8</td><td class="list" align="center" style="background-color: #80FF80" >Ch</td><td class="list" align="center" style="background-color: #80FF80" >---</td><td class="list" align="center" style="background-color: #80FF80" >---</td><td class="list" align="center" style="background-color: #80FF80" >---</td><td class="list" align="center" style="background-color: #80FF80" >Entfall</td></tr>' & _
    '</table>' & _
    '<p>' & _
    '<a name="5">&nbsp;</a><br><a href="#1">[ Montag ]</a> | <a href="#2">[ Dienstag ]</a> | <a href="#3">[ Mittwoch ]</a> | <a href="#4">[ Donnerstag ]</a> | <b>8.6. Freitag</b><p>' & _
    '<table border="3" rules="all" bgcolor="#F4F4F4" cellpadding="3" cellspacing="3">' & _
    '<tr><th align="center" colspan="2">Nachrichten zum Tag</th></tr>' & _
    '<tr><td colspan="2">Frühbereitschaft: PLI/KHL</td></tr><br></table>' & _
    '<p>' & _
    '<table class="subst" >' & _
    '<tr><td align="center" colspan="7" >Keine Vertretungen</td></tr>' & _
    '</table>' & _
    '<p>' & _
    '</div></font><font size="3" face="Arial">' & _
    '8.6.2012 G r u b e r &amp; P e t t e r s S o f t w a r e VersII_11_12_4' & _
    '</font></CENTER>' & _
    '</body>' & _
    '</html>' & _
    '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">' & _
    '<html>' & _
    '<head>' & _
    '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><meta http-equiv="expires" content="0"><meta name="keywords" content="Stundenplan, timetable">' & _
    '<meta name="GENERATOR" content="Untis 2012">' & _
    '<title>Untis 2012 Stundenplan 2011/12 Tellkampfschule Hannover 1</title>' & _
    '<style type="text/css">' & _
    'a {color:#000000;}' & _
    '</style>' & _
    '<link rel="stylesheet" href="../../untisinfo.css" type="text/css">' & _
    '</head>' & _
    '<body bgcolor="#FFFFFF">' & _
    '<CENTER><font size="3" face="Arial">' & _
    '<BR><h2>10b</h2><p><div id="vertretung">' & _
    '<a name="1">&nbsp;</a><br><b>4.6. Montag</b> | <a href="#2">[ Dienstag ]</a> | <a href="#3">[ Mittwoch ]</a> | <a href="#4">[ Donnerstag ]</a> | <a href="#5">[ Freitag ]</a><p>' & _
    '<table class="subst" >' & _
    '<tr><td align="center" colspan="7" >Vertretungen sind nicht freigegeben</td></tr>' & _
    '</table>' & _
    '<p>' & _
    '<a name="2">&nbsp;</a><br><a href="#1">[ Montag ]</a> | <b>5.6. Dienstag</b> | <a href="#3">[ Mittwoch ]</a> | <a href="#4">[ Donnerstag ]</a> | <a href="#5">[ Freitag ]</a><p>' & _
    '<table class="subst" >' & _
    '<tr><td align="center" colspan="7" >Vertretungen sind nicht freigegeben</td></tr>' & _
    '</table>' & _
    '<p>' & _
    '<a name="3">&nbsp;</a><br><a href="#1">[ Montag ]</a> | <a href="#2">[ Dienstag ]</a> | <b>6.6. Mittwoch</b> | <a href="#4">[ Donnerstag ]</a> | <a href="#5">[ Freitag ]</a><p>' & _
    '<table border="3" rules="all" bgcolor="#F4F4F4" cellpadding="3" cellspacing="3">' & _
    '<tr><th align="center" colspan="2">Nachrichten zum Tag</th></tr>' & _
    '<tr><td colspan="2">Frühbereitschaft: LOE/MEI</td></tr><br></table>' & _
    '<p>' & _
    '<table class="subst" >' & _
    '<tr><td align="center" colspan="7" >Keine Vertretungen</td></tr>' & _
    '</table>' & _
    '<p>' & _
    '<a name="4">&nbsp;</a><br><a href="#1">[ Montag ]</a> | <a href="#2">[ Dienstag ]</a> | <a href="#3">[ Mittwoch ]</a> | <b>7.6. Donnerstag</b> | <a href="#5">[ Freitag ]</a><p>' & _
    '<table border="3" rules="all" bgcolor="#F4F4F4" cellpadding="3" cellspacing="3">' & _
    '<tr><th align="center" colspan="2">Nachrichten zum Tag</th></tr>' & _
    '<tr><td colspan="2">Frühbereitschaft: HOF/ILN</td></tr><br></table>' & _
    '<p>' & _
    '<table class="subst" >' & _
    '<tr class="list"><th class="list" align="center">Klasse(n)</th><th class="list" align="center">Stunde</th><th class="list" align="center">(Fach)</th><th class="list" align="center">Vertreter</th><th class="list" align="center">Fach</th><th class="list" align="center">Raum</th><th class="list" align="center">Art</th></tr>' & _
    '<tr class="list even"><td class="list" align="center" style="background-color: #80FF80" >10b</td><td class="list" align="center" style="background-color: #80FF80" >8</td><td class="list" align="center" style="background-color: #80FF80" >Ch</td><td class="list" align="center" style="background-color: #80FF80" >---</td><td class="list" align="center" style="background-color: #80FF80" >---</td><td class="list" align="center" style="background-color: #80FF80" >---</td><td class="list" align="center" style="background-color: #80FF80" >Entfall</td></tr>' & _
    '<tr class="list odd"><td class="list" align="center" style="background-color: #FF8080" >9b</td><td class="list" align="center" style="background-color: #FF8080" >3</td><td class="list" align="center" style="background-color: #FF8080" >Ma</td><td class="list" align="center" style="background-color: #FF8080" >RUD</td><td class="list" align="center" style="background-color: #FF8080" >Ch</td><td class="list" align="center" style="background-color: #FF8080" >A2.7</td><td class="list" align="center" style="background-color: #FF8080" >Verlegung</td></tr>' & _
    '<tr class="list odd"><td class="list" align="center" style="background-color: #80FF80" >5b</td><td class="list" align="center" style="background-color: #80FF80" >7</td><td class="list" align="center" style="background-color: #80FF80" >Ch</td><td class="list" align="center" style="background-color: #80FF80" >---</td><td class="list" align="center" style="background-color: #80FF80" >---</td><td class="list" align="center" style="background-color: #80FF80" >---</td><td class="list" align="center" style="background-color: #80FF80" >Entfall</td></tr>' & _
    '<tr class="list even"><td class="list" align="center" style="background-color: #FF8080" >6a</td><td class="list" align="center" style="background-color: #FF8080" >4</td><td class="list" align="center" style="background-color: #FF8080" >Ma</td><td class="list" align="center" style="background-color: #FF8080" >RUD</td><td class="list" align="center" style="background-color: #FF8080" >Ch</td><td class="list" align="center" style="background-color: #FF8080" >A4.3</td><td class="list" align="center" style="background-color: #FF8080" >Verlegung</td></tr>' & _
    '<tr class="list odd"><td class="list" align="center" style="background-color: #FF8080" >10a, 10b, 10c, 10d</td><td class="list" align="center" style="background-color: #FF8080" >5 - 6</td><td class="list" align="center" style="background-color: #FF8080" >RK</td><td class="list" align="center" style="background-color: #FF8080" >???</td><td class="list" align="center" style="background-color: #FF8080" >RK</td><td class="list" align="center" style="background-color: #FF8080" >E0.1</td><td class="list" align="center" style="background-color: #FF8080" >Vertretung</td></tr>' & _
    '<tr class="list even"><td class="list" align="center" style="background-color: #FF8080" >5a, 10b, 10c, 10d</td><td class="list" align="center" style="background-color: #FF8080" >5 - 6</td><td class="list" align="center" style="background-color: #FF8080" >Re1</td><td class="list" align="center" style="background-color: #FF8080" >???</td><td class="list" align="center" style="background-color: #FF8080" >Re1</td><td class="list" align="center" style="background-color: #FF8080" >A2.1</td><td class="list" align="center" style="background-color: #FF8080" >Vertretung</td></tr>' & _
    '</table>' & _
    '<p>' & _
    '<a name="5">&nbsp;</a><br><a href="#1">[ Montag ]</a> | <a href="#2">[ Dienstag ]</a> | <a href="#3">[ Mittwoch ]</a> | <a href="#4">[ Donnerstag ]</a> | <b>8.6. Freitag</b><p>' & _
    '<table border="3" rules="all" bgcolor="#F4F4F4" cellpadding="3" cellspacing="3">' & _
    '<tr><th align="center" colspan="2">Nachrichten zum Tag</th></tr>' & _
    '<tr><td colspan="2">Frühbereitschaft: PLI/KHL</td></tr><br></table>' & _
    '<p>' & _
    '<table class="subst" >' & _
    '<tr><td align="center" colspan="7" >Keine Vertretungen</td></tr>' & _
    '</table>' & _
    '<p>' & _
    '</div></font><font size="3" face="Arial">' & _
    '8.6.2012 G r u b e r &amp; P e t t e r s S o f t w a r e VersII_11_12_4' & _
    '</font></CENTER>' & _
    '</body>' & _
    '</html>'

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;~ $aSB_1 = _StringBetween(BinaryToString($sSource), '<table class="subst" >', "</table>")
    $aSB_1 = _StringBetween($sTest, '<table class="subst" >', "</table>")

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To UBound($aSB_1) - 1
    If StringInStr($aSB_1[$i], "Klasse")Then
    $iThirdDim += 1
    $aSB_2 = _StringBetween($aSB_1[$i], '" >', "</td>")
    ReDim $aTimetable[(UBound($aSB_2) / 7) + 1][7][$iThirdDim]
    $aTimetable[0][0][$iThirdDim - 1] = "Klasse(n)"
    $aTimetable[0][1][$iThirdDim - 1] = "Stunde"
    $aTimetable[0][2][$iThirdDim - 1] = "(Fach)"
    $aTimetable[0][3][$iThirdDim - 1] = "Vertreter"
    $aTimetable[0][4][$iThirdDim - 1] = "Fach"
    $aTimetable[0][5][$iThirdDim - 1] = "Raum"
    $aTimetable[0][6][$iThirdDim - 1] = "Art"
    For $k = 0 To UBound($aSB_2) - 1
    $aTimetable[Int($k / 7) + 1][$k - (Int($k / 7) * 7)][$iThirdDim - 1] = $aSB_2[$k]
    Next
    EndIf
    Next
    _ArrayMultiDisplay($aTimetable)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _ArrayMultiDisplay
    ; Description ...: Displays given 1D or 2D or 3D u. bei 2D Array ( Array in Array )array in a listview.
    ; Array elements, which is itself a 1D/2D-Array to be, as "[sub-array]" marked and can be displayed mouse button by Right.
    ; Syntax.........: _ArrayDisplay(Const ByRef $avArray[, $sTitle = "Array: ListView Display"[, $iItemLimit = -1[, $iTranspose = 0[, $sSeparator = ""[, $sReplace = "|"[, $sHeader = ""]]]]]])
    ; Parameters ....: $avArray - Array to display
    ; $sTitle - [optional] Title to use for window
    ; $iItemLimit - [optional] Maximum number of listview items (rows) to show
    ; $iTranspose - [optional] If set differently than default, will transpose the array if 2D
    ; $sSeparator - [optional] Change Opt("GUIDataSeparatorChar") on-the-fly
    ; $sReplace - [optional] String to replace any occurrence of $sSeparator with in each array element
    ; $sheader - [optional] Header column names
    ; Return values .: Success - 1
    ; Failure - 0, sets @error:
    ; |1 - $avArray is not an array
    ; |2 - $avArray has too many dimensions (only up to 3D supported)
    ; Author ........: randallc, Ultima, BugFix, Kleiner
    ; Modified.......: Gary Frost (gafrost), Ultima, Zedna, jpm, BugFix, Kleiner
    ; Remarks .......:
    ; Related .......:
    ; Link ..........:
    ; Example .......: Yes
    ; ===============================================================================================================================
    Func _ArrayMultiDisplay(Const ByRef $avArray, $sTitle = 'Array: ListView Display', $iItemLimit = -1, $iTranspose = 0, $sSeparator = '', $sReplace = '|', $sHeader = '')
    If Not IsArray($avArray) Then Return SetError(1, 0, 0)
    Global $avArrayMultiDisplay = $avArray
    Local $iDimension = UBound($avArray, 0), $iUBound = UBound($avArray, 1) - 1, $iSubMax = UBound($avArray, 2) - 1, $3DiUB = UBound($avArray, 3)
    If ($iDimension > 3) Then Return SetError(2, 0, 0)
    If ($sSeparator = '') Then $sSeparator = Chr(124)
    If _ArraySearch($avArray, $sSeparator, 0, 0, 0, 1) <> -1 Then
    For $x = 1 To 255
    If $x >= 32 And $x <= 127 Then ContinueLoop
    Local $sFind = _ArraySearch($avArray, Chr($x), 0, 0, 0, 1)
    If $sFind = -1 Then
    $sSeparator = Chr($x)
    ExitLoop
    EndIf
    Next
    EndIf
    Local $vTmp, $iBuffer = 64
    Local $iColLimit = 250, $iLVIAddUDFThreshold = 4000
    Local $iOnEventMode = Opt('GUIOnEventMode', 0), $sDataSeparatorChar = Opt('GUIDataSeparatorChar', $sSeparator)
    If $iSubMax < 0 Then $iSubMax = 0
    If $iTranspose Then
    $vTmp = $iUBound
    $iUBound = $iSubMax
    $iSubMax = $vTmp
    EndIf
    If $iSubMax > $iColLimit Then $iSubMax = $iColLimit
    If $iItemLimit < 1 Then $iItemLimit = $iUBound
    If $iUBound > $iItemLimit Then $iUBound = $iItemLimit
    If $iLVIAddUDFThreshold > $iUBound Then $iLVIAddUDFThreshold = $iUBound
    If ($sHeader = '') Then
    $sHeader = 'Row '
    For $i = 0 To $iSubMax
    $sHeader &= $sSeparator & 'Col ' & $i
    Next
    EndIf
    If Not $3DiUB Then $3DiUB = 1
    Local $Sub = False
    Local $avArrayText[$iUBound + 1][$3DiUB]
    For $3D = 0 To $3DiUB - 1
    For $i = 0 To $iUBound
    $avArrayText[$i][$3D] = '[' & $i & ']'
    For $j = 0 To $iSubMax
    If ($iDimension = 1) Then
    If $iTranspose Then
    $vTmp = $avArray[$j]
    Else
    $vTmp = $avArray[$i]
    EndIf
    Else
    If ($iDimension = 3) Then
    If $iTranspose Then
    $vTmp = $avArray[$j][$i][$3D]
    Else
    $vTmp = $avArray[$i][$j][$3D]
    EndIf
    Else
    If $iTranspose Then
    $vTmp = $avArray[$j][$i]
    Else
    $vTmp = $avArray[$i][$j]
    EndIf
    EndIf
    EndIf
    If IsArray($vTmp) Then
    $vTmp = '[SubArray]'
    $Sub = True
    Else
    $vTmp = StringReplace($vTmp, $sSeparator, $sReplace, 0, 1)
    EndIf
    $avArrayText[$i][$3D] &= $sSeparator & $vTmp
    $vTmp = StringLen($vTmp)
    If $vTmp > $iBuffer Then $iBuffer = $vTmp
    Next
    Next
    Next
    $iBuffer += 1
    Local Const $_ARRAYCONSTANT_GUI_DOCKBORDERS = 0x66
    Local Const $_ARRAYCONSTANT_GUI_DOCKBOTTOM = 0x40
    Local Const $_ARRAYCONSTANT_GUI_DOCKHEIGHT = 0x0200
    Local Const $_ARRAYCONSTANT_GUI_DOCKLEFT = 0x2
    Local Const $_ARRAYCONSTANT_GUI_DOCKRIGHT = 0x4
    Local Const $_ARRAYCONSTANT_GUI_EVENT_CLOSE = -3
    Local Const $_ARRAYCONSTANT_LVIF_PARAM = 0x4
    Local Const $_ARRAYCONSTANT_LVIF_TEXT = 0x1
    Local Const $_ARRAYCONSTANT_LVM_GETCOLUMNWIDTH = (0x1000 + 29)
    Local Const $_ARRAYCONSTANT_LVM_GETITEMCOUNT = (0x1000 + 4)
    Local Const $_ARRAYCONSTANT_LVM_GETITEMSTATE = (0x1000 + 44)
    Local Const $_ARRAYCONSTANT_LVM_INSERTITEMW = (0x1000 + 77)
    Local Const $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE = (0x1000 + 54)
    Local Const $_ARRAYCONSTANT_LVM_SETITEMW = (0x1000 + 76)
    Local Const $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT = 0x20
    Local Const $_ARRAYCONSTANT_LVS_EX_GRIDLINES = 0x1
    Local Const $_ARRAYCONSTANT_LVS_SHOWSELALWAYS = 0x8
    Local Const $_ARRAYCONSTANT_WS_EX_CLIENTEDGE = 0x0200
    Local Const $_ARRAYCONSTANT_WS_MAXIMIZEBOX = 0x00010000
    Local Const $_ARRAYCONSTANT_WS_MINIMIZEBOX = 0x00020000
    Local Const $_ARRAYCONSTANT_WS_SIZEBOX = 0x00040000
    Local Const $_ARRAYCONSTANT_tagLVITEM = 'int Mask;int Item;int SubItem;int State;int StateMask;ptr Text;int TextMax;int Image;int Param;int Indent;int GroupID;int Columns;ptr pColumns'
    Local Const $_ARRAYCONSTANT_WM_NOTIFY = 0x004E
    Local Const $_ARRAYCONSTANT_TCM_GETCURSEL = (0x1300 + 11)
    Local Const $_ARRAYCONSTANT_GUI_WS_EX_PARENTDRAG = 0x00100000
    Local $iAddMask = BitOR($_ARRAYCONSTANT_LVIF_TEXT, $_ARRAYCONSTANT_LVIF_PARAM)
    Local $tBuffer = DllStructCreate('wchar Text[' & $iBuffer & ']'), $pBuffer = DllStructGetPtr($tBuffer)
    Local $tItem = DllStructCreate($_ARRAYCONSTANT_tagLVITEM), $pItem = DllStructGetPtr($tItem)
    DllStructSetData($tItem, 'Param', 0)
    DllStructSetData($tItem, 'Text', $pBuffer)
    DllStructSetData($tItem, 'TextMax', $iBuffer)
    Local $hListView[$3DiUB]
    Local $iWidth = 640, $iHeight = 480
    Global $hArrayDisplayListView[$3DiUB]
    Local $hGUI = GUICreate($sTitle, $iWidth, $iHeight, Default, Default, BitOR($_ARRAYCONSTANT_WS_SIZEBOX, $_ARRAYCONSTANT_WS_MINIMIZEBOX, $_ARRAYCONSTANT_WS_MAXIMIZEBOX))
    Local $aiGUISize = WinGetClientSize($hGUI)
    Global $hArrayDisplayGUI = $hGUI
    Local $Tab = GUICtrlCreateTab(Default, Default, $aiGUISize[0] + 2, $aiGUISize[1] - 48)
    Local $hCopy = GUICtrlCreateButton('Copy Selected', 3, $aiGUISize[1] - 23, $aiGUISize[0] - 6, 20)
    If $3DiUB > 1 Then
    For $i = 0 To $3DiUB - 1
    GUICtrlCreateTabItem('D' & $i)
    $hListView[$i] = GUICtrlCreateListView($sHeader, 0, 22, $aiGUISize[0], $aiGUISize[1] - 48, $_ARRAYCONSTANT_LVS_SHOWSELALWAYS)
    GUICtrlSetResizing($hListView[$i], $_ARRAYCONSTANT_GUI_DOCKBORDERS)
    $hArrayDisplayListView[$i] = $hListView[$i]
    Next
    Else
    $hListView[0] = GUICtrlCreateListView($sHeader, 0, 0, $aiGUISize[0], $aiGUISize[1] - 26, $_ARRAYCONSTANT_LVS_SHOWSELALWAYS)
    GUICtrlSetResizing($hListView[0], $_ARRAYCONSTANT_GUI_DOCKBORDERS)
    $hArrayDisplayListView[0] = $hListView[0]
    EndIf
    GUICtrlSetResizing($Tab, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM)
    GUICtrlSetResizing($hCopy, $_ARRAYCONSTANT_GUI_DOCKLEFT + $_ARRAYCONSTANT_GUI_DOCKRIGHT + $_ARRAYCONSTANT_GUI_DOCKBOTTOM + $_ARRAYCONSTANT_GUI_DOCKHEIGHT)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_LVS_EX_GRIDLINES, $_ARRAYCONSTANT_LVS_EX_GRIDLINES)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT, $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT)
    GUICtrlSendMsg($hListView, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_WS_EX_CLIENTEDGE, $_ARRAYCONSTANT_WS_EX_CLIENTEDGE)
    Local $aItem
    For $i = 0 To $iUBound
    If ($3DiUB > 1) Then
    For $3D = 0 To $3DiUB - 1
    If GUICtrlCreateListViewItem($avArrayText[$i][$3D], $hListView[$3D]) = 0 Then
    $aItem = StringSplit($avArrayText[$i][$3D], $sSeparator)
    DllStructSetData($tBuffer, 'Text', $aItem[1])
    DllStructSetData($tItem, 'Item', $i)
    DllStructSetData($tItem, 'SubItem', 0)
    DllStructSetData($tItem, 'Mask', $iAddMask)
    GUICtrlSendMsg($hListView[$i], $_ARRAYCONSTANT_LVM_INSERTITEMW, 0, $pItem)
    DllStructSetData($tItem, 'Mask', $_ARRAYCONSTANT_LVIF_TEXT)
    For $j = 2 To $aItem[0]
    DllStructSetData($tBuffer, 'Text', $aItem[$j])
    DllStructSetData($tItem, 'SubItem', $j - 1)
    GUICtrlSendMsg($hListView[$i], $_ARRAYCONSTANT_LVM_SETITEMW, 0, $pItem)
    Next
    EndIf
    Next
    Else
    If GUICtrlCreateListViewItem($avArrayText[$i][0], $hListView[0]) = 0 Then
    $aItem = StringSplit($avArrayText[$i][0], $sSeparator)
    DllStructSetData($tBuffer, 'Text', $aItem[1])
    DllStructSetData($tItem, 'Item', $i)
    DllStructSetData($tItem, 'SubItem', 0)
    DllStructSetData($tItem, 'Mask', $iAddMask)
    GUICtrlSendMsg($hListView[0], $_ARRAYCONSTANT_LVM_INSERTITEMW, 0, $pItem)
    DllStructSetData($tItem, 'Mask', $_ARRAYCONSTANT_LVIF_TEXT)
    For $j = 2 To $aItem[0]
    DllStructSetData($tBuffer, 'Text', $aItem[$j])
    DllStructSetData($tItem, 'SubItem', $j - 1)
    GUICtrlSendMsg($hListView[0], $_ARRAYCONSTANT_LVM_SETITEMW, 0, $pItem)
    Next
    EndIf
    EndIf
    Next
    $iWidth = 0
    For $i = 0 To $iSubMax + 1
    $iWidth += GUICtrlSendMsg($hListView[0], $_ARRAYCONSTANT_LVM_GETCOLUMNWIDTH, $i, 0)
    Next
    If $iWidth < 250 Then $iWidth = 230
    $iWidth += 20
    If $iWidth > @DesktopWidth Then $iWidth = @DesktopWidth - 100
    WinMove($hGUI, '', (@DesktopWidth - $iWidth) / 2, Default, $iWidth)
    GUISetState(@SW_SHOW, $hGUI)
    GUIRegisterMsg($_ARRAYCONSTANT_WM_NOTIFY, 'WM_DISPLAY_NOTIFY')
    Global $a_msgARRAY_DISPLAY
    If Not IsDeclared('hSubGUI') Then Global $hSubGUI
    While 1
    $a_msgARRAY_DISPLAY = GUIGetMsg(1)
    Switch $a_msgARRAY_DISPLAY[0]
    Case $_ARRAYCONSTANT_GUI_EVENT_CLOSE
    If ($a_msgARRAY_DISPLAY[1] = $hGUI) Then
    ExitLoop
    Else
    GUIDelete($hSubGUI)
    EndIf
    Case $hCopy
    Local $sClip = ''
    Local $aiCurItems[1] = [0]
    Local $HWnd = GUICtrlSendMsg($Tab, $_ARRAYCONSTANT_TCM_GETCURSEL, 0, 0)
    If (Not $HWnd) Or ($HWnd = -1) Then $HWnd = 0
    For $i = 0 To GUICtrlSendMsg($hListView[$HWnd], $_ARRAYCONSTANT_LVM_GETITEMCOUNT, 0, 0)
    If GUICtrlSendMsg($hListView[$HWnd], $_ARRAYCONSTANT_LVM_GETITEMSTATE, $i, 0x2) Then
    $aiCurItems[0] += 1
    ReDim $aiCurItems[$aiCurItems[0] + 1]
    $aiCurItems[$aiCurItems[0]] = $i
    EndIf
    Next
    If Not $aiCurItems[0] Then
    For $sItem = 0 To UBound($avArrayText) - 1
    $sClip &= $avArrayText[$sItem][$HWnd] & @CRLF
    ConsoleWrite('1Array lauf : ' & $sClip & @CRLF)
    Next
    Else
    For $i = 1 To UBound($aiCurItems) - 1
    $sClip &= $avArrayText[$aiCurItems[$i]][$HWnd] & @CRLF
    ConsoleWrite('2Array lauf : ' & $sClip & @CRLF)
    Next
    EndIf
    ClipPut($sClip)
    EndSwitch
    WEnd
    GUIDelete($hGUI)
    Opt('GUIOnEventMode', $iOnEventMode)
    Opt('GUIDataSeparatorChar', $sDataSeparatorChar)
    Return 1
    EndFunc ;==>_ArrayMultiDisplay

    [/autoit] [autoit][/autoit] [autoit]

    Func WM_DISPLAY_NOTIFY($HWnd, $iMsg, $iwParam, $ilParam)
    If Not IsDeclared('hArrayDisplayListView') Then Local $hArrayDisplayListView
    If Not IsDeclared('avArrayMultiDisplay') Then Local $avArrayMultiDisplay
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView, $lwHw
    Local Const $USEtagNMHDR = 'hwnd hWndFrom;int IDFrom;int Code'
    Local Const $USEtagNMITEMACTIVATE = 'hwnd hWndFrom;int IDFrom;int Code;int Index;int SubItem;int NewState;int OldState;' & _
    'int Changed;int X;int Y;int lParam;int KeyFlags'
    $tNMHDR = DllStructCreate($USEtagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, 'hWndFrom'))
    $iIDFrom = DllStructGetData($tNMHDR, 'IDFrom')
    $iCode = DllStructGetData($tNMHDR, 'Code')
    For $i = 0 To UBound($hArrayDisplayListView) - 1
    If ($hWndFrom = GUICtrlGetHandle($hArrayDisplayListView[$i])) Then
    $hWndListView = GUICtrlGetHandle($hArrayDisplayListView[$i])
    $lwHw = $i
    ExitLoop
    EndIf
    Next
    Switch $hWndFrom
    Case $hWndListView
    Switch $iCode
    Case -5
    Local $tInfo = DllStructCreate($USEtagNMITEMACTIVATE, $ilParam)
    Local $ItemIndex = DllStructGetData($tInfo, 'Index'), $SubIndex = DllStructGetData($tInfo, 'SubItem')
    If _GUICtrlListView_GetItemText($hWndListView, $ItemIndex, $SubIndex) = '[SubArray]' Then
    If Not IsArray($avArrayMultiDisplay) Then Return 0
    Local $avArraySub
    If (UBound($avArrayMultiDisplay, 0) = 3) Then
    $avArraySub = $avArrayMultiDisplay[$ItemIndex][$SubIndex - 1][$lwHw]
    ElseIf (UBound($avArrayMultiDisplay, 0) = 2) Then
    $avArraySub = $avArrayMultiDisplay[$ItemIndex][$SubIndex - 1]
    Else
    $avArraySub = $avArrayMultiDisplay[$ItemIndex]
    EndIf
    If Not IsDeclared('hArrayDisplayGUI') Then Local $hArrayDisplayGUI
    Local $aMainPos = WinGetPos($hArrayDisplayGUI)
    Local $hSubGUI = GUICreate('SubArray', 640, 480, -1, -1, Default, 0x00000040, $hArrayDisplayGUI)
    Local $sItemText, $ub2nd, $sHeaderLV = 'Row | Col 1'
    If (UBound($avArraySub, 2) > 1) Then
    $ub2nd = True
    $sHeaderLV = 'Row | '
    For $j = 0 To UBound($avArraySub, 2) - 1
    $sHeaderLV &= 'Col ' & $j & ' | '
    Next
    $sHeaderLV = StringTrimRight($sHeaderLV, 2)
    Else
    $ub2nd = False
    EndIf
    Local $hSubLV = GUICtrlCreateListView($sHeaderLV, 0, 0, 640, 480, Default, 0x00000001)
    For $i = 0 To UBound($avArraySub) - 1
    $sItemText = '[' & $i & ']' & '|'
    If $ub2nd Then
    For $j = 0 To UBound($avArraySub, 2) - 1
    $sItemText &= $avArraySub[$i][$j] & '|'
    Next
    $sItemText = StringTrimRight($sItemText, 1)
    Else
    $sItemText &= $avArraySub[$i]
    EndIf
    GUICtrlCreateListViewItem($sItemText, $hSubLV)
    Next
    GUISetState(@SW_SHOW, $hSubGUI)
    EndIf
    EndSwitch
    EndSwitch
    Return 'GUI_RUNDEFMSG'
    EndFunc ;==>WM_DISPLAY_NOTIFY

    [/autoit]

    Einmal editiert, zuletzt von m-obi (6. Juni 2012 um 23:57)

  • Vielen Dank für die Antworten.
    Ich konnte es noch nicht ausprobieren jedoch ist mir ein Problem aufgefallen.
    Denn der verwendete link enthält diecKalenderwoche hier 23 und die müsste sich ja alle 7 Tage um 1erhöhen....

    Ich probiere es nachher mal aber Tipps nehme ich Auch :)

  • Wieso ein Problem, du musst doch nur die Zahl erhöhen???

    [autoit]

    $sSource = InetRead("http://tellkampf1.dyndns.org/Vertretungsplan_SuS/" & $iWeek & "/w/w00021.htm")

    [/autoit]
  • Ne das ist schon klar...

    Ich wollte das aber automatisiert ausführen...

    Ich probiere das nachher

  • Du willst ja wahrscheinlich den Plan immer für die nächste Woche haben.
    Also so:

    [autoit]

    #include <Date.au3>

    [/autoit][autoit][/autoit][autoit]

    If _WeekNumberISO() = 52 Then
    $iWeek = 1
    Else
    $iWeek = _WeekNumberISO() + 1
    EndIf

    [/autoit][autoit][/autoit][autoit]

    $sSource = InetRead("http://tellkampf1.dyndns.org/Vertretungsplan_SuS/" & $iWeek & "/w/w00021.htm")

    [/autoit]
  • Ich habe das jetzt verbunden...
    ich meinte aber eig eher das das skript auch in Zukunft eben die $iWeek an die echte Wochenzahl anpasst...
    damit es von Server die richtigen daten abruft...

  • Bei


    $iWeek = _WeekNumberISO()

    kommt ne fehlermeldung...

    ich habe $iWeek auch schon in den Link reingeschrieben wie in dem Beispiel...

    aber wie bekomme ich es hn das er immer die Aktuelle Woch einträgt?

  • was denn für eine Fehlermeldung? Hast du die Date.au3 includet? Lies dir mal die Hilfe zu _WeekNumberISO() durch.

  • [autoit]

    #include <Array.au3>
    #include <String.au3>
    #include <Date.au3>

    [/autoit][autoit][/autoit][autoit]

    $iWeek = _WeekNumberISO()

    [/autoit][autoit][/autoit][autoit]

    Global $aTimetable[1][7] = [["Klasse(n)", "Stunde", "(Fach)", "Vertreter", "Fach", "Raum", "Art"]]

    [/autoit][autoit][/autoit][autoit]

    $sSource = InetRead("http://tellkampf1.dyndns.org/Vertretungsplan_SuS/" &$iWeek& "/w/w00021.htm")

    [/autoit][autoit][/autoit][autoit]

    $aSB = _StringBetween(BinaryToString($sSource), '<table class="subst" >', "</table>")

    [/autoit][autoit][/autoit][autoit]

    For $i = 0 To UBound($aSB) - 1
    If StringInStr($aSB[$i], "Klasse")Then
    $aSB = _StringBetween($aSB[$i], '" >', "</td>")
    ReDim $aTimetable[(UBound($aSB) / 7) + 1][7]
    For $k = 0 To UBound($aSB) - 1
    $aTimetable[Int($k / 7) + 1][$k - (Int($k / 7) * 7)] = $aSB[$k]
    Next
    _ArrayDisplay($aTimetable)
    EndIf
    Next

    [/autoit]

    ich habe das jetzt so weit zusammen gefügt... :)
    ja ich hatte Date.au3 nicht includet... :whistling:

    das ganze packe ich jetzt in ne Schleife...
    wenn nun Die Rückgabe positiv ist soll eine e-mail veschickt werden... das denke ich bekomme ich hin.

    nur wenn sie einmal verschickt wurde braucht sie nicht bei jeder Wiedeholung noch einmal verschickt werden.
    wie mache ich es das das skript so lange keine e-mail verschickt bis sich wieder etwas geändert ha? ?(

  • Nimm lieber mein Script aus Post 8, da die Seite ja auch mal mehrere Pläne haben kann.
    Du stellst doch den Text zusammen für die Email, dann vergleiche doch vorher den alten Text mit den neuen und wenn sie unterschiedlich sind verschick die Email.

  • ich glaube nicht das die den Plan ändern...

    kannst du mir tipps geben wie ich den Text vergleichen kann??

    e-mail verschicken ist noch umständlich geregekt macht aber erstmal nichts...

    also vergleichen das muss ich noch... :)

  • So hab jetzt mal was gemacht.
    Schau mal in die Console.

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <String.au3>
    #include <GuiListView.au3>
    #include <GUIConstantsEx.au3>
    #include <Date.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Global $iThirdDim = 0
    Global $aTimetable[1][7][1], $aDay[1], $sText

    [/autoit] [autoit][/autoit] [autoit]

    $sSource = InetRead("http://tellkampf1.dyndns.org/Vertretungsplan_SuS/" & _WeekNumberISO() & "/w/w00021.htm")

    [/autoit] [autoit][/autoit] [autoit]

    Global $sTest = '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">' & _
    '<html>' & _
    '<head>' & _
    '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><meta http-equiv="expires" content="0"><meta name="keywords" content="Stundenplan, timetable">' & _
    '<meta name="GENERATOR" content="Untis 2012">' & _
    '<title>Untis 2012 Stundenplan 2011/12 Tellkampfschule Hannover 1</title>' & _
    '<style type="text/css">' & _
    'a {color:#000000;}' & _
    '</style>' & _
    '<link rel="stylesheet" href="../../untisinfo.css" type="text/css">' & _
    '</head>' & _
    '<body bgcolor="#FFFFFF">' & _
    '<CENTER><font size="3" face="Arial">' & _
    '<BR><h2>10b</h2><p><div id="vertretung">' & _
    '<a name="1">&nbsp;</a><br><b>4.6. Montag</b> | <a href="#2">[ Dienstag ]</a> | <a href="#3">[ Mittwoch ]</a> | <a href="#4">[ Donnerstag ]</a> | <a href="#5">[ Freitag ]</a><p>' & _
    '<table class="subst" >' & _
    '<tr><td align="center" colspan="7" >Vertretungen sind nicht freigegeben</td></tr>' & _
    '</table>' & _
    '<p>' & _
    '<a name="2">&nbsp;</a><br><a href="#1">[ Montag ]</a> | <b>5.6. Dienstag</b> | <a href="#3">[ Mittwoch ]</a> | <a href="#4">[ Donnerstag ]</a> | <a href="#5">[ Freitag ]</a><p>' & _
    '<table class="subst" >' & _
    '<tr><td align="center" colspan="7" >Vertretungen sind nicht freigegeben</td></tr>' & _
    '</table>' & _
    '<p>' & _
    '<a name="3">&nbsp;</a><br><a href="#1">[ Montag ]</a> | <a href="#2">[ Dienstag ]</a> | <b>6.6. Mittwoch</b> | <a href="#4">[ Donnerstag ]</a> | <a href="#5">[ Freitag ]</a><p>' & _
    '<table border="3" rules="all" bgcolor="#F4F4F4" cellpadding="3" cellspacing="3">' & _
    '<tr><th align="center" colspan="2">Nachrichten zum Tag</th></tr>' & _
    '<tr><td colspan="2">Frühbereitschaft: LOE/MEI</td></tr><br></table>' & _
    '<p>' & _
    '<table class="subst" >' & _
    '<tr><td align="center" colspan="7" >Keine Vertretungen</td></tr>' & _
    '</table>' & _
    '<p>' & _
    '<a name="4">&nbsp;</a><br><a href="#1">[ Montag ]</a> | <a href="#2">[ Dienstag ]</a> | <a href="#3">[ Mittwoch ]</a> | <b>7.6. Donnerstag</b> | <a href="#5">[ Freitag ]</a><p>' & _
    '<table border="3" rules="all" bgcolor="#F4F4F4" cellpadding="3" cellspacing="3">' & _
    '<tr><th align="center" colspan="2">Nachrichten zum Tag</th></tr>' & _
    '<tr><td colspan="2">Frühbereitschaft: HOF/ILN</td></tr><br></table>' & _
    '<p>' & _
    '<table class="subst" >' & _
    '<tr class="list"><th class="list" align="center">Klasse(n)</th><th class="list" align="center">Stunde</th><th class="list" align="center">(Fach)</th><th class="list" align="center">Vertreter</th><th class="list" align="center">Fach</th><th class="list" align="center">Raum</th><th class="list" align="center">Art</th></tr>' & _
    '<tr class="list odd"><td class="list" align="center" style="background-color: #FF8080" >10b</td><td class="list" align="center" style="background-color: #FF8080" >3</td><td class="list" align="center" style="background-color: #FF8080" >Ma</td><td class="list" align="center" style="background-color: #FF8080" >RUD</td><td class="list" align="center" style="background-color: #FF8080" >Ch</td><td class="list" align="center" style="background-color: #FF8080" >A2.3</td><td class="list" align="center" style="background-color: #FF8080" >Verlegung</td></tr>' & _
    '<tr class="list even"><td class="list" align="center" style="background-color: #FF8080" >10b</td><td class="list" align="center" style="background-color: #FF8080" >4</td><td class="list" align="center" style="background-color: #FF8080" >Ma</td><td class="list" align="center" style="background-color: #FF8080" >RUD</td><td class="list" align="center" style="background-color: #FF8080" >Ch</td><td class="list" align="center" style="background-color: #FF8080" >A2.3</td><td class="list" align="center" style="background-color: #FF8080" >Verlegung</td></tr>' & _
    '<tr class="list odd"><td class="list" align="center" style="background-color: #FF8080" >10a, 10b, 10c, 10d</td><td class="list" align="center" style="background-color: #FF8080" >5 - 6</td><td class="list" align="center" style="background-color: #FF8080" >RK</td><td class="list" align="center" style="background-color: #FF8080" >???</td><td class="list" align="center" style="background-color: #FF8080" >RK</td><td class="list" align="center" style="background-color: #FF8080" >E0.1</td><td class="list" align="center" style="background-color: #FF8080" >Vertretung</td></tr>' & _
    '<tr class="list even"><td class="list" align="center" style="background-color: #FF8080" >10a, 10b, 10c, 10d</td><td class="list" align="center" style="background-color: #FF8080" >5 - 6</td><td class="list" align="center" style="background-color: #FF8080" >Re1</td><td class="list" align="center" style="background-color: #FF8080" >???</td><td class="list" align="center" style="background-color: #FF8080" >Re1</td><td class="list" align="center" style="background-color: #FF8080" >A2.1</td><td class="list" align="center" style="background-color: #FF8080" >Vertretung</td></tr>' & _
    '<tr class="list odd"><td class="list" align="center" style="background-color: #80FF80" >10b</td><td class="list" align="center" style="background-color: #80FF80" >7</td><td class="list" align="center" style="background-color: #80FF80" >Ch</td><td class="list" align="center" style="background-color: #80FF80" >---</td><td class="list" align="center" style="background-color: #80FF80" >---</td><td class="list" align="center" style="background-color: #80FF80" >---</td><td class="list" align="center" style="background-color: #80FF80" >Entfall</td></tr>' & _
    '<tr class="list even"><td class="list" align="center" style="background-color: #80FF80" >10b</td><td class="list" align="center" style="background-color: #80FF80" >8</td><td class="list" align="center" style="background-color: #80FF80" >Ch</td><td class="list" align="center" style="background-color: #80FF80" >---</td><td class="list" align="center" style="background-color: #80FF80" >---</td><td class="list" align="center" style="background-color: #80FF80" >---</td><td class="list" align="center" style="background-color: #80FF80" >Entfall</td></tr>' & _
    '</table>' & _
    '<p>' & _
    '<a name="5">&nbsp;</a><br><a href="#1">[ Montag ]</a> | <a href="#2">[ Dienstag ]</a> | <a href="#3">[ Mittwoch ]</a> | <a href="#4">[ Donnerstag ]</a> | <b>8.6. Freitag</b><p>' & _
    '<table border="3" rules="all" bgcolor="#F4F4F4" cellpadding="3" cellspacing="3">' & _
    '<tr><th align="center" colspan="2">Nachrichten zum Tag</th></tr>' & _
    '<tr><td colspan="2">Frühbereitschaft: PLI/KHL</td></tr><br></table>' & _
    '<p>' & _
    '<table class="subst" >' & _
    '<tr><td align="center" colspan="7" >Keine Vertretungen</td></tr>' & _
    '</table>' & _
    '<p>' & _
    '</div></font><font size="3" face="Arial">' & _
    '8.6.2012 G r u b e r &amp; P e t t e r s S o f t w a r e VersII_11_12_4' & _
    '</font></CENTER>' & _
    '</body>' & _
    '</html>' & _
    '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">' & _
    '<html>' & _
    '<head>' & _
    '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><meta http-equiv="expires" content="0"><meta name="keywords" content="Stundenplan, timetable">' & _
    '<meta name="GENERATOR" content="Untis 2012">' & _
    '<title>Untis 2012 Stundenplan 2011/12 Tellkampfschule Hannover 1</title>' & _
    '<style type="text/css">' & _
    'a {color:#000000;}' & _
    '</style>' & _
    '<link rel="stylesheet" href="../../untisinfo.css" type="text/css">' & _
    '</head>' & _
    '<body bgcolor="#FFFFFF">' & _
    '<CENTER><font size="3" face="Arial">' & _
    '<BR><h2>10b</h2><p><div id="vertretung">' & _
    '<a name="1">&nbsp;</a><br><b>4.6. Montag</b> | <a href="#2">[ Dienstag ]</a> | <a href="#3">[ Mittwoch ]</a> | <a href="#4">[ Donnerstag ]</a> | <a href="#5">[ Freitag ]</a><p>' & _
    '<table class="subst" >' & _
    '<tr><td align="center" colspan="7" >Vertretungen sind nicht freigegeben</td></tr>' & _
    '</table>' & _
    '<p>' & _
    '<a name="2">&nbsp;</a><br><a href="#1">[ Montag ]</a> | <b>5.6. Dienstag</b> | <a href="#3">[ Mittwoch ]</a> | <a href="#4">[ Donnerstag ]</a> | <a href="#5">[ Freitag ]</a><p>' & _
    '<table class="subst" >' & _
    '<tr><td align="center" colspan="7" >Vertretungen sind nicht freigegeben</td></tr>' & _
    '</table>' & _
    '<p>' & _
    '<a name="3">&nbsp;</a><br><a href="#1">[ Montag ]</a> | <a href="#2">[ Dienstag ]</a> | <b>6.6. Mittwoch</b> | <a href="#4">[ Donnerstag ]</a> | <a href="#5">[ Freitag ]</a><p>' & _
    '<table border="3" rules="all" bgcolor="#F4F4F4" cellpadding="3" cellspacing="3">' & _
    '<tr><th align="center" colspan="2">Nachrichten zum Tag</th></tr>' & _
    '<tr><td colspan="2">Frühbereitschaft: LOE/MEI</td></tr><br></table>' & _
    '<p>' & _
    '<table class="subst" >' & _
    '<tr><td align="center" colspan="7" >Keine Vertretungen</td></tr>' & _
    '</table>' & _
    '<p>' & _
    '<a name="4">&nbsp;</a><br><a href="#1">[ Montag ]</a> | <a href="#2">[ Dienstag ]</a> | <a href="#3">[ Mittwoch ]</a> | <b>7.6. Donnerstag</b> | <a href="#5">[ Freitag ]</a><p>' & _
    '<table border="3" rules="all" bgcolor="#F4F4F4" cellpadding="3" cellspacing="3">' & _
    '<tr><th align="center" colspan="2">Nachrichten zum Tag</th></tr>' & _
    '<tr><td colspan="2">Frühbereitschaft: HOF/ILN</td></tr><br></table>' & _
    '<p>' & _
    '<table class="subst" >' & _
    '<tr class="list"><th class="list" align="center">Klasse(n)</th><th class="list" align="center">Stunde</th><th class="list" align="center">(Fach)</th><th class="list" align="center">Vertreter</th><th class="list" align="center">Fach</th><th class="list" align="center">Raum</th><th class="list" align="center">Art</th></tr>' & _
    '<tr class="list even"><td class="list" align="center" style="background-color: #80FF80" >10b</td><td class="list" align="center" style="background-color: #80FF80" >8</td><td class="list" align="center" style="background-color: #80FF80" >Ch</td><td class="list" align="center" style="background-color: #80FF80" >---</td><td class="list" align="center" style="background-color: #80FF80" >---</td><td class="list" align="center" style="background-color: #80FF80" >---</td><td class="list" align="center" style="background-color: #80FF80" >Entfall</td></tr>' & _
    '<tr class="list odd"><td class="list" align="center" style="background-color: #FF8080" >9b</td><td class="list" align="center" style="background-color: #FF8080" >3</td><td class="list" align="center" style="background-color: #FF8080" >Ma</td><td class="list" align="center" style="background-color: #FF8080" >RUD</td><td class="list" align="center" style="background-color: #FF8080" >Ch</td><td class="list" align="center" style="background-color: #FF8080" >A2.7</td><td class="list" align="center" style="background-color: #FF8080" >Verlegung</td></tr>' & _
    '<tr class="list odd"><td class="list" align="center" style="background-color: #80FF80" >5b</td><td class="list" align="center" style="background-color: #80FF80" >7</td><td class="list" align="center" style="background-color: #80FF80" >Ch</td><td class="list" align="center" style="background-color: #80FF80" >---</td><td class="list" align="center" style="background-color: #80FF80" >---</td><td class="list" align="center" style="background-color: #80FF80" >---</td><td class="list" align="center" style="background-color: #80FF80" >Entfall</td></tr>' & _
    '<tr class="list even"><td class="list" align="center" style="background-color: #FF8080" >6a</td><td class="list" align="center" style="background-color: #FF8080" >4</td><td class="list" align="center" style="background-color: #FF8080" >Ma</td><td class="list" align="center" style="background-color: #FF8080" >RUD</td><td class="list" align="center" style="background-color: #FF8080" >Ch</td><td class="list" align="center" style="background-color: #FF8080" >A4.3</td><td class="list" align="center" style="background-color: #FF8080" >Verlegung</td></tr>' & _
    '<tr class="list odd"><td class="list" align="center" style="background-color: #FF8080" >10a, 10b, 10c, 10d</td><td class="list" align="center" style="background-color: #FF8080" >5 - 6</td><td class="list" align="center" style="background-color: #FF8080" >RK</td><td class="list" align="center" style="background-color: #FF8080" >???</td><td class="list" align="center" style="background-color: #FF8080" >RK</td><td class="list" align="center" style="background-color: #FF8080" >E0.1</td><td class="list" align="center" style="background-color: #FF8080" >Vertretung</td></tr>' & _
    '<tr class="list even"><td class="list" align="center" style="background-color: #FF8080" >5a, 10b, 10c, 10d</td><td class="list" align="center" style="background-color: #FF8080" >5 - 6</td><td class="list" align="center" style="background-color: #FF8080" >Re1</td><td class="list" align="center" style="background-color: #FF8080" >???</td><td class="list" align="center" style="background-color: #FF8080" >Re1</td><td class="list" align="center" style="background-color: #FF8080" >A2.1</td><td class="list" align="center" style="background-color: #FF8080" >Vertretung</td></tr>' & _
    '</table>' & _
    '<p>' & _
    '<a name="5">&nbsp;</a><br><a href="#1">[ Montag ]</a> | <a href="#2">[ Dienstag ]</a> | <a href="#3">[ Mittwoch ]</a> | <a href="#4">[ Donnerstag ]</a> | <b>8.6. Freitag</b><p>' & _
    '<table border="3" rules="all" bgcolor="#F4F4F4" cellpadding="3" cellspacing="3">' & _
    '<tr><th align="center" colspan="2">Nachrichten zum Tag</th></tr>' & _
    '<tr><td colspan="2">Frühbereitschaft: PLI/KHL</td></tr><br></table>' & _
    '<p>' & _
    '<table class="subst" >' & _
    '<tr><td align="center" colspan="7" >Keine Vertretungen</td></tr>' & _
    '</table>' & _
    '<p>' & _
    '</div></font><font size="3" face="Arial">' & _
    '8.6.2012 G r u b e r &amp; P e t t e r s S o f t w a r e VersII_11_12_4' & _
    '</font></CENTER>' & _
    '</body>' & _
    '</html>'

    [/autoit] [autoit][/autoit] [autoit]

    ;~ $aSB_1 = _StringBetween(BinaryToString($sSource), "<b>", "</b>")
    ;~ $aSB_2 = _StringBetween(BinaryToString($sSource), '<table class="subst" >', "</table>")
    $aSB_1 = _StringBetween($sTest, "<b>", "</b>")
    $aSB_2 = _StringBetween($sTest, '<table class="subst" >', "</table>")

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To UBound($aSB_2) - 1
    If StringInStr($aSB_2[$i], "Klasse")Then
    $iThirdDim += 1
    ReDim $aDay[$iThirdDim]
    $aDay[$iThirdDim - 1] = $aSB_1[$i]
    $aSB_3 = _StringBetween($aSB_2[$i], '" >', "</td>")
    ReDim $aTimetable[(UBound($aSB_3) / 7) + 1][7][$iThirdDim]
    $aTimetable[0][0][$iThirdDim - 1] = "Klasse(n)"
    $aTimetable[0][1][$iThirdDim - 1] = "Stunde"
    $aTimetable[0][2][$iThirdDim - 1] = "(Fach)"
    $aTimetable[0][3][$iThirdDim - 1] = "Vertreter"
    $aTimetable[0][4][$iThirdDim - 1] = "Fach"
    $aTimetable[0][5][$iThirdDim - 1] = "Raum"
    $aTimetable[0][6][$iThirdDim - 1] = "Art"
    For $k = 0 To UBound($aSB_3) - 1
    $aTimetable[Int($k / 7) + 1][$k - (Int($k / 7) * 7)][$iThirdDim - 1] = $aSB_3[$k]
    Next
    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit]

    $sText = ""
    $sCol1 = " "
    $sCol2 = " "
    $sCol3 = " "
    $sCol4 = " "
    $sCol5 = " "
    $sCol6 = " "
    $sCol7 = " "

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To UBound($aDay) - 1
    $sText &= $aDay[$i] & @CRLF
    For $k = 0 To UBound($aTimetable) - 1
    $sText &= "|" & $aTimetable[$k][0][$i] & StringTrimLeft($sCol1, StringLen($aTimetable[$k][0][$i])) & "|"
    $sText &= $aTimetable[$k][1][$i] & StringTrimLeft($sCol2, StringLen($aTimetable[$k][1][$i])) & "|"
    $sText &= $aTimetable[$k][2][$i] & StringTrimLeft($sCol3, StringLen($aTimetable[$k][2][$i])) & "|"
    $sText &= $aTimetable[$k][3][$i] & StringTrimLeft($sCol4, StringLen($aTimetable[$k][3][$i])) & "|"
    $sText &= $aTimetable[$k][4][$i] & StringTrimLeft($sCol5, StringLen($aTimetable[$k][4][$i])) & "|"
    $sText &= $aTimetable[$k][5][$i] & StringTrimLeft($sCol6, StringLen($aTimetable[$k][5][$i])) & "|"
    $sText &= $aTimetable[$k][6][$i] & StringTrimLeft($sCol7, StringLen($aTimetable[$k][6][$i])) & "|" & @CRLF
    Next
    $sText &= @CRLF
    Next
    ConsoleWrite($sText)

    [/autoit]