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. Jensen..

Beiträge von Jensen..

  • Datumsformat

    • Jensen..
    • 2. September 2025 um 20:01

    Hallo SOLVE-SMART,

    dass war genau das was ich gesucht habe, in meinem String den ich bearbeite, kommt eben nur das Format 08:30 AM/PM vor.

    Ganz herzlichen Dank für deine Unterstützung!

  • Datumsformat

    • Jensen..
    • 1. September 2025 um 22:18

    Hallo,

    warum funktioniert das nicht? Die MsgBox zeigt mir alles leer an.


    mfg Jensen

    AutoIt
    #include <Date.au3>
    
    Local $sZeit = "08:30 PM"
    ; In 24h-Format umwandeln
    Local $sNeuZeit = _DateTimeFormat($sZeit, 3)
    
    MsgBox(0, "Ergebnis", $sNeuZeit) ;Ausgabe soll sein: 20:30
  • Daten von einer Webseite aufbereiten

    • Jensen..
    • 5. September 2020 um 23:25

    Hallo und vielen Dank auch dir gmmk,

    Ich habe es gestern auch noch geschafft die entsprechenden Daten aus den Quellcode mit vielen Zeilen allein für die Daten um Platz 1 in der Tabelle zu "filtern".

    Hoffe nur das der Betreiber nicht so häufig in der Saison sein Design anpasst :)

    Hier mal die Funktion: (ist sicher einfacher zu lösen aber ich bin leider in Autoit immer noch Laie)

    Code
    Func _Platz_1()
    $s_pl1 = '<span class="hidden-lg hidden-xl">1.</span>' ; Suchstring
    $openfile = FileOpen($file, 0); öffnet das File mit den Quellcode der Webseite
    For $i = 1 To _FileCountLines($file) ;geht nun jede Zeile durch bis der Suchstring gefunden ist
    $readline = FileReadLine($openfile, $i); und speichert die Zeilennummer in $i
    If StringInStr($readline, $s_pl1) Then; Wenn der Suchstring gefunden wurde, dann
    $sMannschaft_pl1 = FileReadLine($file,$i+1);gehe eine Zeile darunter
    $aString_pl1 = StringSplit($sMannschaft_pl1,"/");und Splitte den String auf(Array)
    $sr1_pl1 = StringReplace($aString_pl1[14],'">',""); in Zeile 11 befindet sich nun der Name der Mannschaft die auf Platz 1 ist
    $sr2_pl1 = StringReplace($sr1_pl1,"<","");ersetzen
    $sBegegnungen_pl1 = FileReadLine($file,$i+3);gehe drei Zeilen darunter zum String Begegnungen
    $aStringBegegnungen_pl1 = StringSplit($sBegegnungen_pl1,">");und Splitte den String auf(Array)
    $srBeg_pl1 = StringReplace($aStringBegegnungen_pl1[2],"</td","");ersetzen
    $sSiege_pl1 = FileReadLine($file,$i+4);gehe vier Zeilen darunter zum String Siege
    $aStringSiege_pl1 = StringSplit($sSiege_pl1,">");und Splitte den String auf(Array)
    $srSiege_pl1 = StringReplace($aStringSiege_pl1[2],"</td","");ersetzen
    $sUnentschieden_pl1 = FileReadLine($file,$i+5);gehe weiter zum nächsten String Unentschieden
    $aStringUnentschieden_pl1 = StringSplit($sUnentschieden_pl1,">");und Splitte den String auf(Array)
    $srUnentschieden_pl1 = StringReplace($aStringUnentschieden_pl1[2],"</td","");ersetzen
    $sVerloren_pl1 = FileReadLine($file,$i+6);gehe weiter zum nächsten String Verloren
    $aStringVerloren_pl1 = StringSplit($sVerloren_pl1,">");und Splitte den String auf(Array)
    $srVerloren_pl1 = StringReplace($aStringVerloren_pl1[2],"</td","");ersetzen
    $sSpiele_pl1 = FileReadLine($file,$i+8);gehe weiter zum nächsten String Spiele
    $aStringSpiele_pl1 = StringSplit($sSpiele_pl1,">");und Splitte den String auf(Array)
    $srSpiele_pl1 = StringReplace($aStringSpiele_pl1[2],'<em class="visible-xs-block"',"");ersetzen
    $sSaetze_Baelle_pl1 = FileReadLine($file,$i+10);gehe weiter zum nächsten String Sätze/Bälle
    $aStringSaetze_Baelle_pl1 = StringSplit($sSaetze_Baelle_pl1,"=");und Splitte den String auf(Array)
    $sr1Saetze_Baelle_pl1 = StringReplace($aStringSaetze_Baelle_pl1[2],'"',"");ersetzen
    $sr2Saetze_Baelle_pl1 = StringReplace($sr1Saetze_Baelle_pl1,';',"");ersetzen
    $sPM_pl1 = FileReadLine($file,$i+29);gehe weiter zum nächsten String Verloren
    $aStringPM_pl1 = StringSplit($sPM_pl1,">");und Splitte den String auf(Array)
    $srPM_pl1 = StringReplace($aStringPM_pl1[2],"</td","")
    $sPunkte_pl1 = FileReadLine($file,$i+30);gehe weiter zum nächsten String Verloren
    $aStringPunkte_pl1 = StringSplit($sPunkte_pl1,">");und Splitte den String auf(Array)
    $srPunkte_pl1 = StringReplace($aStringPunkte_pl1[2],"</td","")
    
    Global $P1_Platz = "1."
    Global $P1_Mannschaft = $sr2_pl1
    Global $P1_Begegnungen = $srBeg_pl1
    Global $P1_Anzahl_Siege = $srSiege_pl1
    Global $P1_Anzahl_Unentschieden = $srUnentschieden_pl1
    Global $P1_Anzahl_Verloren = $srVerloren_pl1
    Global $P1_Spiele = $srSpiele_pl1
    Global $P1_PlusMinus = $srPM_pl1
    Global $P1_Punkte = $srPunkte_pl1
    Global $P1_Saetze_Baelle = $sr2Saetze_Baelle_pl1
    
    _Platz_2()
    Exit
    EndIf
    Next
    MsgBox(0, "Platz 1", $s_pl1 & " kein Eintrag vorhanden!")
    EndFunc
    Alles anzeigen
  • Daten von einer Webseite aufbereiten

    • Jensen..
    • 3. September 2020 um 11:18

    Vielen Dank für deine Anregungen, werde mal sehen ob ich was mit anfangen kann.

    Der Betreiber bietet ja sogar iframes an, jedoch sind diese sehr unflexibel wenn es um Layout und responsives design geht, daher der Ansatz eben nur die Daten direkt zu holen und dann in einer eigenen Tabelle einzubetten.

  • Daten von einer Webseite aufbereiten

    • Jensen..
    • 3. September 2020 um 01:19

    Hallo,

    ich möchte gerne für einen Verein die aktuelle Tabellensituation auf deren Homepage integrieren.

    Da es keine API seitens des Betreibers gibt, wollte ich es jetzt mit Autoit probieren die Daten von deren Webseite zu holen um danach diese in eine Datenbank zu schreiben.

    Das schreiben der Daten in eine mysql Datenbank soll hier nicht der Punkt sein aber mit der Aufbereitung der Daten habe ich ein Problem.

    Hier mal die Webseite (Tabelle) die ich meine, es geht da nur um den Inhalt aus dieser Tabelle.

    Mein Ansatz war bisher mit _IEDocReadHTML mir den Quellcode der Seite in ein Textfile zu speichern, jedoch sind das ja recht viele für mich uninteressante Zeilen die ich dann irgendwie herausfiltern müsste um einen brauchbaren String zu bekommen.

    Gibt es dafür eine andere Alternative?

    Code
    #include <ie.au3>
    
    Global $url="https://www.mytischtennis.de/clicktt/WTTV/20-21/ligen/3-Kreisklasse-4-VR/gruppe/385717/tabelle/gesamt"
    Global $file=@ScriptDir & "\ausgabe.txt"
    
    ausgabe()
    
    Func ausgabe()
    $oIE = _IECreate($url,1,0)
    $sSource = _IEDocReadHTML($oIE)
        If NOT StringInStr($sSource,@CRLF) Then
            $sSource=StringReplace($sSource,@LF,@CRLF)
        Endif
    FileWrite($file,$sSource)
    EndFunc
    Alles anzeigen
  • Excel UDF Schreibe in Zelle wenn leer

    • Jensen..
    • 26. April 2016 um 21:17

    Danke water, jetzt funktioniert es und ist auch noch schnell.

  • Excel UDF Schreibe in Zelle wenn leer

    • Jensen..
    • 24. April 2016 um 16:42

    Hallo water,
    vielen Dank für dein Tip.
    Habe das jetzt mal so "reingepinselt"

    AutoIt
    #include <Excel.au3>
    $pfad = @scriptdir&"\test.xlsx"
    $tabelle = "Tabelle1"
    $Spalte = "B"
    $wert = "Wert"
    $oExcel=_Excel_Open(true)
    $oWorkbook=_Excel_BookOpen($oExcel,$pfad)
    
    
    Local $iLastUsedRow =$oWorkbook.ActiveSheet.UsedRange.Rows.Count
    _Excel_RangeWrite($oWorkbook,$tabelle,$wert,$Spalte&$iLastUsedRow+1)
    Alles anzeigen

    jetzt schreibt er mir bei einer leeren Tabelle immer den Wert in die nächste freie Zelle in Spalte B, eigentlich gut so, jedoch wenn irgendwo z.b in Spalte A oder in sonst einer anderen, ein Wert weiter "unten in der Reihe" steht, nimmt er diesen als letzte Zeile und schreibt mir natürlich nicht mehr in die nächste freie Zelle in Spalte B. Ich brauchte also eine Funktion die genau in Spalte B die letzte Zeile findet.

  • Excel UDF Schreibe in Zelle wenn leer

    • Jensen..
    • 15. April 2016 um 23:12

    @water,Kannst du mir bitte sagen wie ich das für mein Vorhaben umsetzen kann?
    Suche in Spalte "B" die nächste freie Zelle und schreibe den Wert dort rein.
    Habe mal etwas probiert, jedoch mache ich wohl was falsch.

    AutoIt
    #include <Excel.au3>
    $pfad = @scriptdir&"\test.xlsx"
    $tabelle = "Tabelle1"
    $Spalte = "B"
    $wert = "Wert"
    $oExcel=_Excel_Open(true)
    $oWorkbook=_Excel_BookOpen($oExcel,$pfad)
    
    
    
    
    
    
    $oRange = $oWorkbook.ActiveSheet.UsedRange.SpecialCells($xlCellTypeLastCell)
    
    
     _Excel_RangeWrite($oWorkbook,$tabelle, $wert,$oRange)
     _Excel_BookSave($oWorkbook)
    Alles anzeigen
  • Excel UDF Schreibe in Zelle wenn leer

    • Jensen..
    • 7. April 2016 um 14:30

    Perfekt, beide Beispiele führen zum Erfolg.
    Danke für die schnelle Hilfe :thumbup:

  • Excel UDF Schreibe in Zelle wenn leer

    • Jensen..
    • 7. April 2016 um 13:20

    Hallo,
    ich würde gerne in die nächst freie Zelle in Spalte B schreiben.
    Also wenn z.b: in B1 und B2 schon was steht, dann schreibe in B4 usw.

    In diesen Beispiel wird nur in eine bestimmte Zelle geschrieben.

    Code
    #include <Excel.au3>
    
    
    $pfad = @scriptdir&"\test.xlsx"
    $tabelle = "Tabelle1"
    $Ziel = "B3"
    $wert = "12345"
    
    
    $oExcel=_Excel_Open(true)
    $oWorkbook=_Excel_BookOpen($oExcel,$pfad)
    _Excel_RangeWrite($oWorkbook,$tabelle, $wert,$Ziel)
    ;_Excel_BookClose($oWorkbook)
    ;_Excel_Close($oExcel)
    Alles anzeigen
  • Problem mit Listviewauswahl

    • Jensen..
    • 23. Dezember 2015 um 00:31

    Wow...alles funktioniert.
    Danke eukalyptus

  • Problem mit Listviewauswahl

    • Jensen..
    • 22. Dezember 2015 um 23:56

    Hallo,

    vieleicht kann mir jemand bei meinem Problem helfen.
    Mir ist aufgefallen, dass ein Eintrag (item) auf zwei verschiedene Arten in meinem Beispiel
    markiert sein kann.
    Einmal ist wenn ich direkt mit der Maus draufklick der Eintrag "blau" markiert und alle Funktionen aus den
    Contextmenü funktionieren. Wenn ich den Mauszeiger danach ins leere Listview stelle ist der Eintrag nicht "blau"
    sondern hat ein gestrichelten Rand. Wenn ich nun das Contextmenü aufrufe dann kann dieser "gestrichelte"
    markierte Eintrag sogar kopiert aber nicht gelöscht werden.
    Ich würde es gerne so haben das nur wenn der Eintrag "blau" markiert ist auch das Contextmenü seinen Dienst tut.

    Hier mal das was ich meine in zwei Screenshots:
    Screen 1: Blau markiert
    Screen 2: gestrichelt markiert


    Hier mal das Beispiel:

    C
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <MsgBoxConstants.au3>
    
    
    Global $idListview
    
    
    GUICreate("ListView", 400, 300)
    $idListview = GUICtrlCreateListView("", 2, 2, 394, 268)
    Global $CM = GUICtrlCreateContextMenu($idListview)
    Global $CMDelete = GUICtrlCreateMenuItem("Eintrag löschen", $CM)
    Global $CMCopy = GUICtrlCreateMenuItem("Eintrag speichern", $CM)
    GUISetState(@SW_SHOW)
    
    
    _GUICtrlListView_AddColumn($idListview, "Items", 100)
    _GUICtrlListView_AddItem($idListview, "Item 1")
    _GUICtrlListView_AddItem($idListview, "Item 2")
    _GUICtrlListView_AddItem($idListview, "Item 3")
    
    
    
    
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    		Case $CMDelete
    			_GUICtrlListView_DeleteItemsSelected($idListview)
    		Case $CMCopy
    			_kopiere()
    
    
    	EndSwitch
    WEnd
    
    
    
    
    Func _kopiere()
    	Local $lesen = _GUICtrlListView_GetSelectionMark($idListview)
    	Local $item = _GUICtrlListView_GetItemTextString($idListview, $lesen)
    	If $lesen = -1 Then
    		MsgBox(0, "Fehler", "Kein Eintrag markiert!")
    	Else
    		FileWriteLine("speichern.txt", $item)
    		MsgBox(0, "", "Eintrag gespeichert")
    	EndIf
    EndFunc   ;==>_kopiere
    Alles anzeigen
  • Werte aus ini File in Combobox

    • Jensen..
    • 27. April 2015 um 12:01

    Hallo,
    vielen Dank für eure Hilfe, es funktioniert jetzt.
    Wo kann man jetzt das Thema als "gelöst" markieren?

  • Werte aus ini File in Combobox

    • Jensen..
    • 26. April 2015 um 22:37

    Hallo,
    ich habe hier ein .ini file das in etwa so aussieht:

    Spoiler anzeigen


    [001]
    Abteilung = "Abt.1"
    Name = "MA.1"
    Gruppe = 1


    [002]
    Abteilung = "Abt.1"
    Name = "MA.2"
    Gruppe = 1


    [003]
    Abteilung = "Abt.1"
    Name = "MA.3"
    Gruppe = 1

    Jetzt suche ich nach einer Funktion die mir alle "Namen" aus der .ini Datei, aus allen Sektionen, ... in einer Combobox ausgibt.

    Um zu verdeutlichen was ich meine, hier ein Foto:
    http://gyazo.com/43567afd7c16794716c455499945c70e

    Danke

  • Ini: Alle Sectionen nach Wert durchsuchen

    • Jensen..
    • 24. März 2015 um 18:25

    Sorry Aspirin, ich hatte wohl eine variable vertauscht.
    Natürlich geht es jetzt.

    Spoiler anzeigen
    [autoit]

    Local $path = @ScriptDir & "\beispiel.cfg"
    Local $key = "name"
    Local $name = "username5"
    Local $s_Section = IniGetSectionByValue($path, $key, $name)

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

    If @error = 1 Then
    MsgBox(48, "Nichts gefunden", "Eintrag in ini-Datei nicht gefunden")
    ElseIf @error = 2 Then
    MsgBox(48, "Fehler", "Konnte ini-Datei nicht lesen")
    Else
    MsgBox(0, "", "name = " & $name & " in Section [" & $s_Section & "] gefunden.")
    EndIf

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

    Func IniGetSectionByValue($s_IniFile, $s_SearchKey, $s_SearchValue)
    Local $a_Sections = IniReadSectionNames($s_IniFile)
    If @error Then Return SetError(2, @error, "")
    For $i = 1 To $a_Sections[0]
    If IniRead($s_IniFile, $a_Sections[$i], $s_SearchKey, Default) = $s_SearchValue Then Return $a_Sections[$i]
    Next
    Return SetError(1, 0, "")
    EndFunc ;==>IniGetSectionByValue

    [/autoit]

    Hier die passende beispiel.cfg

    Spoiler anzeigen

    ;Beispiel cfg

    [111]
    gruppe = "admin"
    name = "username1"
    wert = 1

    [22222]
    gruppe = "user"
    name = "username2"
    wert = 1

    [33333]
    gruppe = "user"
    name = "username3"
    wert = 1

    [44444]
    gruppe = "gast"
    name = "username4"
    wert = 1

    [55555]
    gruppe = "user"
    name = "username5"
    wert = 1

  • Ini: Alle Sectionen nach Wert durchsuchen

    • Jensen..
    • 24. März 2015 um 17:00

    Hallo nochmal,
    ich hatte eben nochmal den Code von Aspirin getest und stellte fest, dass wenn der Suchbegriff sich nicht in der ersten
    Sektion befindet, nicht weiter in den anderen Sektionen gesucht wird.
    Wie müßte man den Code verändern damit das auch noch gelingt?

  • Ini: Alle Sectionen nach Wert durchsuchen

    • Jensen..
    • 24. März 2015 um 14:00

    Danke euch beiden, so funktioniert es nun. :thumbup:

  • Ini: Alle Sectionen nach Wert durchsuchen

    • Jensen..
    • 24. März 2015 um 03:21

    Hallo,
    mein Problem ist vielleicht ganz ähnlich, daher grabe ich mal dieses Thema wieder hervor.
    Die .cfg Datei die bei uns verwendet wird ähnelt einer .ini, allerdings mit Leerzeichen vor und nach den = Zeichen
    weiterhin sind einige "Values" in " " geschrieben.
    Wie sollte das Pattern aussehen, damit ich die sogenannte "Sektion" in der .cfg Datei ermitteln kann.
    Als Suchbegriff wird der Name verwendet.

    Hier der Aufbau der .cfg Datei:
    [123]
    gruppe = "Gruppe1"
    name = "Name1"
    wert = 1
    [862]
    gruppe = "Gruppe1"
    name = "Name2"
    wert = 1

  • Patcher Entwicklung

    • Jensen..
    • 14. Oktober 2014 um 23:11

    Hallo,
    das mit der Progressbar würde mich auch noch interessieren.

    Zitat von progandy


    Du hast von Hilfe gesprochen, nicht von komplett schreiben lassen ;)
    Das Beispiel hat ja bereits eine Schleife, in der eine MsgBox aufgeht für jede geänderte Datei. Hier musst du dann Code für den download einbauen.
    Ohne Fortschrittsanzeige sähe das dann so aus: Wie du dann den Fortschrittsbalken ainbaust, musst du selbst rausfinden.

    [autoit]

    For $i = 1 To $aUpdates[0][0]
    SplashTextOn("Download Patch", $aUpdates[$i][0] & @CRLF & "Von: " & $aUpdates[$i][2] &@CRLF & "Nach: " & $sZiel)
    If StringInStr($aUpdates[$i][0], '\') Then DirCreate( $sZiel & StringRegExpReplace($aUpdates[$i][0], '\\[^\\]*$', ''))
    InetGet($aUpdates[$i][2], $sZiel & $aUpdates[$i][0], 1)
    ;MsgBox(0, '', "z.B. Download datei..."& @CRLF & $aUpdates[$i][0] & @CRLF & "Von: " & $aUpdates[$i][2] &@CRLF & "Nach: " & $sZiel)
    SplashOff()
    Next

    [/autoit]
    Alles anzeigen

    also mit einer Datei habe ich sowas auch schonmal gemacht, jedoch der Patcher stellt ja erst anhand von den md5-hash fest welche Datei er laden soll.
    Das heißt, dass die Größe der Dateien die geladen werden bei jeden unterschiedlich sein können.
    Vielleicht kann mir da mal jemand auf die Sprünge helfen?

  • Patcher Entwicklung

    • Jensen..
    • 15. September 2014 um 14:42

    Danke für die schnelle Antwort chip,

    mein Problem hat sich jedoch schon aufgelöst :)
    es lag nicht am Script wie ich anfangs vermutet hatte, ich habe noch einmal eine subdomain eingerichtet und die Berechtigungen gesetzt, jetzt funktioniert es auch mit ISS 7.
    Leider kann ich nicht mehr nachvollziehen was ich vorher verkehrt gemacht hatte.

    ...schönen Tag noch

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™