Kino Programm deiner Stadt V2

  • Hi !

    Habe paar kleine änderungen vorgenommen u. dein problem gelöst vieleicht hast du dardurch ein paar anregungen!


    Spoiler anzeigen
    [autoit]

    #include <GuiListView.au3>
    #include <IE.au3>
    #include <String.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <ListViewConstants.au3>
    #include <StructureConstants.au3>

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

    Opt("GUIOnEventMode", 1)

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

    Global $ListView_Kino, $hStatus, $SiteCount = 0, $MoreSites = 0, $SiteCount_2 = 0, $SiteCounter = 0
    Local $aEnd, $CityName, $i, $j, $url, $sHTML, $oIE, $temp_array
    Local $Array_Cinema[100][100]
    Dim $Version = "Beta 5.5"
    Dim $Date = "25.02.2010"

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

    $MainForm = GUICreate("Kino Programm by nefas", 980, 370, -1, -1)
    GUISetOnEvent(-3, '_ExitC')
    GUICtrlCreateLabel("Stadt:", 8, 13, 55, 17)
    $txtCity = GUICtrlCreateInput("", 40, 8, 120, 21)
    $cmdGo = GUICtrlCreateButton("Go", 162, 8, 27, 21, $WS_GROUP)
    GUICtrlSetOnEvent(-1, 'Start')
    GUICtrlCreateLabel("Tag:: ", 200, 13, 40, 17)
    $radio_Heute = GUICtrlCreateRadio("Heute", 235, 13, 50, 17)
    GUICtrlSetOnEvent(-1, 'Start')
    $radio_Morgen = GUICtrlCreateRadio("", 335, 13, 80, 17)
    GUICtrlSetOnEvent(-1, 'Start')
    $radio_UeberMorgen = GUICtrlCreateRadio("", 435, 13, 80, 17)
    GUICtrlSetOnEvent(-1, 'Start')
    $radio_UeberUeberMorgen = GUICtrlCreateRadio("", 535, 13, 80, 17)
    GUICtrlSetOnEvent(-1, 'Start')
    $chk_Genauigkeit = GUICtrlCreateCheckbox("Genau", 8, 35)
    GUICtrlCreateLabel("Adresse: ", 162, 40, 40, 17)
    $lbl_Adresse = GUICtrlCreateLabel("", 210, 40, 350, 17)
    GUICtrlSetColor(-1, 0x0000FF)
    GUICtrlCreateLabel("Tel.: ", 560, 40, 20, 17)
    $lbl_TelNum = GUICtrlCreateLabel("", 590, 40, 100, 17)
    GUICtrlSetColor(-1, 0x0000FF)
    $ListView_Kino = GUICtrlCreateListView('', 8, 56, 153, 300)
    _GUICtrlListView_AddColumn($ListView_Kino, 'Kino-Name', 149, 0)
    _GUICtrlListView_SetExtendedListViewStyle($ListView_Kino, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES, $LVS_EX_ONECLICKACTIVATE))
    $ListView_Film = GUICtrlCreateListView('', 160, 56, 810, 300)
    _GUICtrlListView_AddColumn($ListView_Film, 'Titel', 200, 2)
    _GUICtrlListView_AddColumn($ListView_Film, 'Laufzeit', 75, 2)
    _GUICtrlListView_AddColumn($ListView_Film, 'FSK', 200, 2)
    _GUICtrlListView_AddColumn($ListView_Film, 'Genre', 150, 2)
    _GUICtrlListView_AddColumn($ListView_Film, 'Start Zeit', 180, 2)
    _GUICtrlListView_SetExtendedListViewStyle($ListView_Film, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES, $LVS_EX_ONECLICKACTIVATE))
    GUICtrlSetState($radio_Heute, $GUI_CHECKED)
    GUISetState()

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

    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

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

    Func Start()
    If GUICtrlRead($txtCity) = "" Then Return MsgBox(0, "Warnung", "Bitte geben Sie einen Stadtnamen oder ein Plz. ein!")
    GUISetState(@SW_DISABLE, $MainForm)
    SplashTextOn('Suche gestartet', ' Bitte warten.....', 150, 40, -1, -1, 20, "", 13)
    $MoreSites = 0
    $SiteCount_2 = 0
    $SiteCounter = 0
    getSource()
    SplashOff()
    GUISetState(@SW_ENABLE, $MainForm)
    EndFunc ;==>Start

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

    Func getSource($ii = -1)
    $i = 0
    $j = 0
    $CityName = StringReplace(StringReplace(StringReplace(StringReplace(GUICtrlRead($txtCity), 'ß', 'ss'), 'ö', 'oe'), 'ä', 'ae'), 'ü', 'ue')
    $url = 'http://www.google.de/movies?hl=de&near=' & $CityName & '&date=0&start=' & $SiteCount_2
    If (GUICtrlRead($radio_Morgen) = $GUI_CHECKED) Then $url = 'http://www.google.de/movies?hl=de&near=' & $CityName & '&date=1&start=' & $SiteCount_2
    If (GUICtrlRead($radio_UeberMorgen) = $GUI_CHECKED) Then $url = 'http://www.google.de/movies?hl=de&near=' & $CityName & '&date=2&start=' & $SiteCount_2
    If (GUICtrlRead($radio_UeberUeberMorgen) = $GUI_CHECKED) Then $url = 'http://www.google.de/movies?hl=de&near=' & $CityName & '&date=3&start=' & $SiteCount_2
    $oIE = _IECreate($url, 0, 0)
    $sHTML = _IEBodyReadHTML($oIE)
    _IEQuit($oIE)
    If $MoreSites = 0 Then
    For $i = 0 To UBound($Array_Cinema, 1) - 1
    For $jj = 0 To UBound($Array_Cinema, 2) - 1
    $Array_Cinema[$i][$jj] = ''
    Next
    Next
    EndIf
    $aArray = StringSplit($sHTML, @CRLF, 1)
    For $i = 0 To UBound($aArray) - 1
    Select
    Case $aArray[$i] = "<DIV class=theater>"
    $j = 0
    $i += 2
    $ii += 1
    $temp_array = _StringBetween($aArray[$i], "<SPAN dir=ltr>", "</SPAN>")
    If @error = 0 Then $Array_Cinema[$ii][$j] = $temp_array[0]
    $i += 1
    $j += 1
    $temp_array = _StringBetween($aArray[$i], "<DIV class=info>", "<A class=")
    If @error = 0 Then $Array_Cinema[$ii][$j] = $temp_array[0]
    Case $aArray[$i] = "<DIV class=movie>"
    $i += 1
    $j += 1
    $temp_array = _StringBetween($aArray[$i], "<SPAN dir=ltr>", "</SPAN>")
    If @error = 0 Then $Array_Cinema[$ii][$j] = $temp_array[0]
    $j += 1
    $temp_array = _StringBetween($aArray[$i], "</NOBR>", "</SPAN>")
    If @error = 0 Then $Array_Cinema[$ii][$j] = $temp_array[0]
    $i += 1
    $j += 1
    $temp_array = _StringBetween($aArray[$i], "<DIV class=times>", "</DIV>")
    If @error = 0 Then $Array_Cinema[$ii][$j] = $temp_array[0]
    Case StringInStr($aArray[$i], 'date=1">')
    $temp_array = _StringBetween($aArray[$i], 'date=1">', "</A></DIV>")
    If @error = 0 Then GUICtrlSetData($radio_Morgen, $temp_array[0])
    Case StringInStr($aArray[$i], 'date=2">')
    $temp_array = _StringBetween($aArray[$i], 'date=2">', "</A></DIV>")
    If @error = 0 Then GUICtrlSetData($radio_UeberMorgen, $temp_array[0])
    Case StringInStr($aArray[$i], 'date=3">')
    $temp_array = _StringBetween($aArray[$i], 'date=3">', "</A></DIV>")
    If @error = 0 Then GUICtrlSetData($radio_UeberUeberMorgen, $temp_array[0])
    Case StringInStr($aArray[$i], '<TD noWrap><A href')
    If $MoreSites = 0 Then $SiteCount += 1
    EndSelect
    Next
    If ($MoreSites = 0) Then
    $MoreSites = 1
    While $SiteCounter < $SiteCount
    $SiteCounter += 1
    $SiteCount_2 += 10
    getSource($ii)
    WEnd
    Find_Cinema()
    EndIf
    EndFunc ;==>getSource

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

    Func GetFilmList()
    Dim $i_ListView = 0
    $Index = _GUICtrlListView_GetHotItem($ListView_Kino)
    If ($Index = -1) Then Return
    _GUICtrlListView_BeginUpdate(GUICtrlGetHandle($ListView_Film))
    $String_Seperated = StringSplit($Array_Cinema[$Index][1], " - ", 1)
    If ($String_Seperated[0] = 2) Then GUICtrlSetData($lbl_TelNum, $String_Seperated[2])
    GUICtrlSetData($lbl_Adresse, $String_Seperated[1])
    For $j = 2 To UBound($Array_Cinema, 2) - 1
    If ($Array_Cinema[$Index][$j] <> '') Then
    _GUICtrlListView_AddItem($ListView_Film, $Array_Cinema[$Index][$j])
    $j += 1
    $Temp = StringTrimLeft($Array_Cinema[$Index][$j], 10)
    If ($Temp <> '') Then
    $TempArray = StringSplit($Temp, '- ', 1)
    Switch $TempArray[0]
    Case 1
    _GUICtrlListView_AddSubItem($ListView_Film, $i_ListView, StringTrimRight($TempArray[1], 3), 1)
    Case 2
    _GUICtrlListView_AddSubItem($ListView_Film, $i_ListView, StringTrimRight($TempArray[1], 3), 1)
    _GUICtrlListView_AddSubItem($ListView_Film, $i_ListView, StringTrimLeft(StringTrimRight($TempArray[2], 3), 5), 2)
    Case 3
    _GUICtrlListView_AddSubItem($ListView_Film, $i_ListView, StringTrimRight($TempArray[1], 3), 1)
    _GUICtrlListView_AddSubItem($ListView_Film, $i_ListView, StringTrimRight(StringTrimRight($TempArray[2], 3), 3), 2)
    _GUICtrlListView_AddSubItem($ListView_Film, $i_ListView, StringTrimRight($TempArray[3], 1), 3)
    EndSwitch
    EndIf
    $j += 1
    _GUICtrlListView_AddSubItem($ListView_Film, $i_ListView, StringReplace($Array_Cinema[$Index][$j], '&nbsp;', ';'), 4)
    $i_ListView += 1
    EndIf
    Next
    _GUICtrlListView_EndUpdate(GUICtrlGetHandle($ListView_Film))
    EndFunc ;==>GetFilmList

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

    Func Find_Cinema()
    _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($ListView_Kino))
    _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($ListView_Film))
    _GUICtrlListView_BeginUpdate(GUICtrlGetHandle($ListView_Kino))
    $aEnd = UBound($Array_Cinema, 1) - 1
    If (GUICtrlRead($chk_Genauigkeit) = $GUI_CHECKED) Then
    For $i = 0 To $aEnd Step +1
    If (StringInStr($Array_Cinema[$i][1], GUICtrlRead($txtCity)) <> 0) Then _GUICtrlListView_AddItem($ListView_Kino, $Array_Cinema[$i][0])
    Next
    Else
    For $i = 0 To $aEnd
    If ($Array_Cinema[$i][0] <> '') Then _GUICtrlListView_AddItem($ListView_Kino, $Array_Cinema[$i][0])
    Next
    EndIf
    _GUICtrlListView_EndUpdate(GUICtrlGetHandle($ListView_Kino))
    EndFunc ;==>Find_Cinema

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

    Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView, $tInfo
    $hWndListView = $ListView_Kino
    If Not IsHWnd($ListView_Kino) Then $hWndListView = GUICtrlGetHandle($ListView_Kino)
    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, 'hWndFrom'))
    $iIDFrom = DllStructGetData($tNMHDR, 'IDFrom')
    $iCode = DllStructGetData($tNMHDR, 'Code')
    Switch $hWndFrom
    Case $hWndListView
    Switch $iCode
    Case $NM_CLICK
    $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
    _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($ListView_Film))
    GetFilmList()
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

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

    Func _ExitC()
    If (MsgBox(292, '', 'Wollen sie das Programm wirklich Beenden ?') = 6) Then Exit
    EndFunc ;==>_ExitC

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

    While 1 * Sleep(10)
    WEnd

    [/autoit]


    LG Kleiner