1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. BugFix

Beiträge von BugFix

  • UDF Wetter lokal

    • BugFix
    • 16. November 2008 um 15:58

    Hi,
    eine Funktion zum Abfragen lokaler Wetterdaten
    - Aktuell (letzte 5 Std.) oder
    - kommende 5 Tage (inkl. heute)

    _GetWeather
    [autoit]

    #include <array.au3>
    #include <INet.au3>

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

    $ret = _GetWeather('Köln')
    If IsArray($ret) Then
    _ArrayDisplay($ret, 'Köln - aktuell')
    Else
    MsgBox(0, '', $ret & ' - ' & @error)
    EndIf

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

    $ret = _GetWeather('Köln', 0)
    If IsArray($ret) Then
    _ArrayDisplay($ret, 'Köln - 5-Tage')
    Else
    MsgBox(0, '', $ret & ' - ' & @error)
    EndIf

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

    ;===============================================================================
    ; Function Name: _GetWeather($ORT [, $TYP=1])
    ; Description:: Wetterangaben für einen Ort
    ; Parameter(s): $ORT Ortsname
    ; optional $TYP 1= Aktuell (Standard), 0= 5-Tage
    ; Requirement(s): #include <INet.au3>
    ; Return Value(s): Erfolg Array mit den Wetterdaten
    ; Fehler 1 @error 1 Host nicht erreichbar
    ; @error 2 Source konnte nicht gelesen werden
    ; Author(s): BugFix ([email='bugfix@web.de'][/email])
    ;===============================================================================
    Func _GetWeather($ORT, $TYP=1)
    If $TYP < 0 Or $TYP > 1 Then $TYP = 1
    Ping('www.web.de')
    If @error Then Return SetError(1,0,1)
    If $TYP = 0 Then ; 5-Tage
    Local $url = 'http://webde.wetternet.de/cgi-bin/webde/wetter_stadt.pl?ID=2880&TYP=0&ALIAS=' & $ORT
    Else ; Aktuell
    Local $url = 'http://webde.wetternet.de/cgi-bin/webde/wetter_stadt_ist.pl?ID=2880&TYP=0&ALIAS=' & $ORT
    EndIf
    Local $arTmp, $ret, $source = _INetGetSource($url)
    If @error Then Return SetError(2,0,1)
    Local $aZuordnung[14] = ['sonnig','heiter','bewölkt','wolkig','stark bewölkt','Regenschauer','Regen', _
    'Gewitter','teilw. Schneefall','Schneefall','Schneeregen','Nebel','gering bewölkt','Niesel']
    Local $image = StringRegExp($source, '(?<=http://webde\.wetternet\.de/images/symbole/)k_ani\d+\.gif', 3)
    Local $icon = StringRegExp($source, '(?<=http://webde\.wetternet\.de/images/icon/)\w+\.gif', 3)
    Local $wind_r = StringRegExp($source, '(?<=\<td\>)[OSWN]-?[OSWN]?-?[OSWN]?', 3)
    Local $wind_g = StringRegExp($source, '\d{1,3}\s(?:m/s|km/h)', 3)
    If $TYP = 0 Then
    Local $arValue[7][6]
    Local $tage = StringRegExp($source, '(?<=scope="col"\>)[MDFS][oira]', 3)
    Local $max_min = StringRegExp($source, '(-?\d*,?\d?)(?>°)', 3)
    Local $nieder = StringRegExp($source, '(?<=\<td\>)\d{1,3}%', 3)
    Else
    Local $arValue[10][6]
    Local $zeit = StringRegExp($source, '[0-2]\d\.[0-5]\d Uhr', 3)
    Local $temp_tau = StringRegExp($source, '(-?\d*,?\d?)(?>&deg)', 3)
    Local $feuchte = StringRegExp($source, '(?<=\<td\>)\d{1,3}%', 3)
    Local $druck = StringRegExp($source, '\d{1,4}\shPa', 3)
    Local $sicht = StringRegExp($source, '(\d{1,3}\sk?m)(?>\<\/td\>)', 3)
    Local $wolken = StringRegExp($source, '\d{2,5}\s-\s\d{2,5}m', 3)
    EndIf
    For $i = 0 To UBound($arValue) -1
    Switch $i
    Case 0
    If $TYP Then
    $arTmp = $zeit
    Else
    $arTmp = $tage
    EndIf
    Case 1
    $arTmp = $image
    For $k = 0 To 4
    $ret = StringRegExp($arTmp[$k], '\d+', 1)
    $arTmp[$k] = $aZuordnung[$ret[0]-1]
    Next
    Case 2
    If $TYP Then
    For $k = 0 To 4
    $arTmp[$k] = $temp_tau[$k]
    Next
    Else
    For $k = 0 To 4
    $arTmp[$k] = $max_min[$k]
    Next
    EndIf
    Case 3
    If $TYP Then
    For $k = 5 To 9
    $arTmp[$k-5] = $temp_tau[$k]
    Next
    Else
    For $k = 5 To 9
    $arTmp[$k-5] = $max_min[$k]
    Next
    EndIf
    Case 4
    If $TYP Then
    $arTmp = $wind_r
    Else
    $arTmp = $nieder
    EndIf
    Case 5
    If $TYP Then
    $arTmp = $wind_g
    Else
    $arTmp = $wind_r
    EndIf
    Case 6
    If $TYP Then
    $arTmp = $feuchte
    Else
    $arTmp = $wind_g
    EndIf
    Case 7
    $arTmp = $druck
    Case 8
    $arTmp = $sicht
    Case 9
    $arTmp = $wolken
    EndSwitch
    For $k = 0 To UBound($arTmp) -1
    $arValue[$i][$k+1] = $arTmp[$k]
    Next
    If $i > 1 Then $arValue[$i][0] = StringTrimRight($icon[$i-2], 4)
    Next
    Return $arValue
    EndFunc ;==>_GetWeather

    [/autoit]
  • Wetter herunterladen :)

    • BugFix
    • 15. November 2008 um 12:50

    Hab mal weitergesucht - die Daten finde ich am Besten:

    [autoit]

    #include <array.au3>
    #include <IE.au3>
    #include <INet.au3>
    $Ort = 'Berlin'
    ;~ $url = 'http://webde.wetternet.de/cgi-bin/webde/wetter_stadt.pl?ID=2880&TYP=0&ALIAS=' & $Ort ; 5-Tage
    $url = 'http://webde.wetternet.de/cgi-bin/webde/wetter_stadt_ist.pl?ID=2880&TYP=0&ALIAS=' & $Ort ; Aktuell
    $source = _INetGetSource($url)

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

    $oIE = _IECreate($url, 0, 0)
    $oTable = _IETableGetCollection($oIE, 1)

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

    $ar = _IETableWriteToArray($oTable, True)
    $image = StringRegExp($source, 'http://webde.wetternet.de/images/symbole/k_ani\d+.gif', 3)
    $icon = StringRegExp($source, 'http://webde.wetternet.de/images/icon/\w+.gif', 3)

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

    $index = 0
    For $i = 1 To 5
    $ar[1][$i] = $image[$index]
    $index += 1
    Next
    $index = 0
    For $i = 2 To UBound($ar) -1
    $ar[$i][0] = $icon[$index]
    $index += 1
    Next
    _ArrayDisplay($ar)
    _IEQuit($oIE)

    [/autoit]


    Mußt nur noch die Piktogramme für Regen, Bewölkt etc. (werden in der Tabelle als 0 dargestellt) abfragen, dann ist es komplett.
    Edit: Hab ich dir mal schnell noch eingefügt. Den Picture- und IconPath hab ich dir dazugeschrieben, kannst dir ja dann die Symbole laden.

    Edit2: Noch eine Änderung. Hab bemerkt, dass die Indexzuordnung für die Symbole nicht konstant ist. Lade jetzt den kpl. Pfad mit runter. Nun paßt es.

  • Iconwechsel in einem ListView

    • BugFix
    • 15. November 2008 um 11:14
    [autoit]

    _GUICtrlListView_SetItemSelected($hWnd, $iIndex[, $fSelected = True[, $fFocused = False]])

    [/autoit]


    Mit $fSelected = False wird die Markierung aufgehoben.

  • _IECreate baut Mist?

    • BugFix
    • 15. November 2008 um 11:08

    Das liegt nicht an _IECreate, sondern an der URL. Du kannst diese nicht mit vorgewähltem Ort aufrufen. Es kommt immer erst die allgemeine Startseite von Meteo24, in der du dann deinen Ort wählen mußt. (Außerdem hattest du den Ort nicht als String erstellt - aber sicher Schreibfehler).

    Nimm lieber "www.wetteronline.de" - dort kannst du mit Ort aufrufen. Die Daten sind dort alle inner halb eines Frames in einer Tabelle - also einfach mit den IE-Funktionen auslesbar.

  • Shutdown-Timer

    • BugFix
    • 15. November 2008 um 10:51
    Zitat von sc4ry

    dass die Zeit in verbleibenden Stunden:Minuten:Sekunden angezeigt wird, da hab ich noch kein plan.

    Wirf mal 'nen Blick auf meine Funktion CountDown, dort siehst du, wie es funktioniert.

  • Wetter herunterladen :)

    • BugFix
    • 14. November 2008 um 22:45

    Oder schau mal hier: http://wetter.rtl.de/deutschland/uebersicht.php

  • Proggramie Hilfe (4 Felder)

    • BugFix
    • 13. November 2008 um 10:57

    Eine Bitte vorab - vor dem Posten nochmals durchlesen und die groben Schreibfehler rauskicken. Dann läßt es sich viel besser verstehen. ;)
    Also ich weiß nicht so richtig, was du eigentlich vorhast. Willst du nur zugucken, wie in bestimmten Intervallen irgendwas in deine Programme eingefügt wird? Welchen Sinn hat das?
    Du brauchst für das, was du beschrieben hast, nirgendwo hinklicken. Das geht auch bei minimierten Fenstern.
    Aber solange ich den Sinn nicht verstehe, kann ich dir keine konkreten Antworten geben.

  • Autovervollständigung - InputBox erweitern mit Suchergebnis (Autovervollständigung)

    • BugFix
    • 13. November 2008 um 10:43

    Wenn ich das richtig verstanden habe, kannst du EXE-Files nicht downloaden? Ausführen geht aber - oder? Denn was ich dir geladen habe ist auch nur das Installationspaket, aber in eine ZIP gepackt.

  • Autovervollständigung - InputBox erweitern mit Suchergebnis (Autovervollständigung)

    • BugFix
    • 13. November 2008 um 10:24

    Ich habe dir mal die aktuelle AutoIt- und Scite-Version gezipt und auf einen Webserver gepackt.
    Zugangsdaten kommen per PN.

  • Gobby

    • BugFix
    • 12. November 2008 um 19:49
    Zitat von r1fLeX

    Aber läuft leider immernoch nicht.


    Port freigegeben? Auf Server- und auch auf Client-Seite!

  • Gobby

    • BugFix
    • 12. November 2008 um 18:34

    WAN-IP ist die öffentliche IP (WideAreaNetwork) deines Routers. z.B. 83.170.50.177
    Im Gegensatz zur LAN-IP (LocalAreaNetwork). z.B. 192.168.178.10

  • DVD Archiv

    • BugFix
    • 12. November 2008 um 18:17
    [autoit]

    _ArraySort($aInput[0])

    [/autoit]

    Geht nicht. Du wendest den Sortierbefehl auf das Element [0] des Array an. Schau noch mal in die Syntax der Hilfe ;)

  • Gobby

    • BugFix
    • 12. November 2008 um 17:59

    Ist recht einfach.
    Einer spielt Server:
    - Gobby starten, Sitzung eröffnen, (evtl. Paßwort vergeben)
    - Dokument in dieser Sitzung öffnen
    - die eigene WAN-IP auslesen, Port merken

    Der oder diejenigen, die beitreten wollen:
    - vom Hoster die WAN-IP und Port anfordern
    - Gobby starten, Sitzung beitreten, IP und Port eintragen
    fertig

    Und bei Bedarf die Ports im Router freigeben!!

  • Autovervollständigung - InputBox erweitern mit Suchergebnis (Autovervollständigung)

    • BugFix
    • 12. November 2008 um 17:52

    Das nennt sich IntelliSense - habe ich hier mal erstellt.

  • Datum

    • BugFix
    • 12. November 2008 um 16:52

    SNTP geht sicher auch, aber warum so aufwändig.
    Xeno hatte doch schon einen Weg empfohlen. Ich hab mal was analoges gemacht:

    Spoiler anzeigen
    [autoit]

    #include <INet.au3>
    Local $pattern = '(?<=<meta name="DC.Date" content=")\d{4}-\d{2}-\d{2}'
    Local $ret = _INetGetSource('http://www.tagesschau.de/')
    If @error Then Exit
    Local $INetDate = StringRegExp($ret, $pattern, 1)
    If @error Then Exit

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

    ;~ MsgBox(0, '', $INetDate[0])
    ;~ MsgBox(0, '', @YEAR & '-' & @MON & '-' & @MDAY)

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

    If @YEAR & '-' & @MON & '-' & @MDAY > $INetDate[0] Then Exit MsgBox(0, 'Puh', 'Schummeln gibts nicht!')

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

    ; Dein Code

    [/autoit]
  • Happy Birthday Xeno

    • BugFix
    • 12. November 2008 um 15:55

    Hallo Xeno,
    ich wünsche dir zu deinem letzten 20-er Alles erdenklich Gute.
    Bleib fit und munter :thumbup:

  • Gibt es eine Möglichkeit Text zu färben?

    • BugFix
    • 10. November 2008 um 22:36

    Standardmäßig kannst du Controlbeschriftung mit GUICtrlSetColor() einfärben. Den Hintergrund mit GUICtrlSetBkColor().
    Du wirst aber in einem Editor unterschiedliche Farben einsetzen wollen - such mal nach RichEditCtrl.

  • Quizfragen

    • BugFix
    • 10. November 2008 um 22:22

    Da gibt es doch super Seiten im Web:
    http://www.neunmalklug.ch/archiv/wissen.htm
    http://www.w-akten.de/

  • StringRegExp Flag 2

    • BugFix
    • 10. November 2008 um 22:13
    Zitat von msp-holzwurm

    'V(E|V)_[A-Z]*\.TXT*(?!.)'
    ^^^^
    ist das das Zeilenende???


    Hier mal die Erklärung zum Pattern:

    V - ein V
    (E|V) - gefolgt von einem E oder einem V
    _ - ein Unterstrich
    [A-Z]* - die Buchstaben A-Z beliebig oft
    \. - ein Punkt
    TXT - die Buchstaben TXT
    (?!.) - es darf kein weiteres Zeichen folgen

  • Mausklick ins minimierte oder inaktive fenster !

    • BugFix
    • 10. November 2008 um 21:18
    Zitat von Sharkoon

    da das bei autoit mit controlclick noch sehr fehleranfällig ist


    Das ist mir neu. ControlClick ist meiner Erfahrung nach zuverlässig. Optimal ist es, die Cotrols über CLASSNAME anzusprechen.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™