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

Beiträge von dieselwiesel

  • TV Senderliste bearbeiten

    • dieselwiesel
    • 14. Dezember 2022 um 11:50

    @Musashi

    Man, du hast ja schneller eine Lösung parat als ich die Bordsuche oder google nutzen kann =O

    Werte in Notepad++ passen, nur die Sendernamen haben im ChanSort keine Umlaute -> WDR D�sseldorf.

    Im TV teste ich es nachher, muss jetzt erstmal zur Arbeit.

    EDIT: die Sender werden im TV mit Umlauten angezeigt :thumbup: Ein paar Sender in fremder Sprache oder verschlüsselte haben sich sich eingeschlichen, weil sie namentlich mit den deutschen Sendern identisch sind. Alles in allem spart es aber eine Menge an Zeit gegenüber den gängigen Programmen! Habe noch ein paar Ideen dazu, möchte den Bogen aber nicht überspannen ^^

    @Musashi vielen Dank noch einmal für deine Zeit und das Skript! :)

  • TV Senderliste bearbeiten

    • dieselwiesel
    • 14. Dezember 2022 um 11:07

    Moombas

    Danke für den Tip. Die mit dem Skript erzeugte Liste ist UTF8 und die "original" Liste ist ANSI. Beim Konvertieren zu ANSI passen die Werte wieder, aber keine Umlaute mehr bei den Sendernamen :D

  • TV Senderliste bearbeiten

    • dieselwiesel
    • 14. Dezember 2022 um 10:27

    @Musashi

    TOP! :thumbup: Alles raus was (für mich) unnütz ist. Gibt noch einen kleines Problem. Wenn ich die neue Liste in den TV einspeise, kommt er nur bis #26, ein Sender mit Umlaut (siehe Bild). Obwohl der Line-Vergleich (alt/neu) im Notepad++ völlig identisch ist, hat der TV wohl ein Problem damit. Auch im ChanSort werden einige Sender mit fehlerhaften Werten dargestellt, auch hier sind es nur Sender mit Umlauten :/

    Dateien

    senderliste.jpg 241,83 kB – 0 Downloads
  • TV Senderliste bearbeiten

    • dieselwiesel
    • 14. Dezember 2022 um 00:20

    Danke für eure Unterstützung! :thumbup: Das mit dem fehlenden Leerzeichen war natürlich wieder so ein Anfängerfehler von mir :Face:

    Velted

    Leider funktioniert dein Skript bei mir nicht, es bringt folgenden Fehler in SciTE...

    $oNodeList = $oHtmlDoc.querySelectorAll('a[title^="Senderdaten"]')

    $oNodeList = $oHtmlDoc^ ERROR

    Dennoch Danke für den Hinweis mit dem Leerzeichen!

    @Musashi

    Was soll ich sagen? Wer kann, der kann, sogar mit Umlauten :) Danke!

    oh-ha

    Kenn ich, dass war u.a. der Anlass nach etwas anderem zu suchen :D Das Programm lädt die Liste, aber ich weiß nicht welche Programme frei und in deutsch sind. Man müsste sie entweder im TV ausprobieren, oder mit der Satindex Liste abgleichen. Dauert Stunden...


    Der Teil mit den Sendern ist gelöst. Jetzt möchte ich alles was dort nicht gelistet ist aus der .SDX Datei entfernt haben. Dummerweise sind die jeweiligen Sendernamen gesplittet. Kann man die SDX z.B. mit FileReadToArray Zeilenweise einlesen und dann per Suchmuster die Zeilen löschen wo es nicht passt? Vielleicht hat einer 1-2 Suchbegriffe, damit ich das Board mal durchsuchen kann.

  • TV Senderliste bearbeiten

    • dieselwiesel
    • 13. Dezember 2022 um 10:00

    Danke für eure Antworten :)

    Moombas

    Dachte an _INetGetSource und StringRegExp, funktioniert aber noch nicht so recht.

    AutoIt
    #include <String.au3>
    #include <Array.au3>
    #include <Inet.au3>
    
    $sSource = _INetGetSource("https://www.satindex.de/tv/1/1/0/")
    $aRegEx = StringRegExp($sSource, '<div class="col freqx_1">(.*?)</div>', 3) ; unter col freqx_1 sind die Sendernamen gelistet
    _ArrayDisplay($aRegEx)

    Denke am StringRegExp passt etwas noch nicht, da der Quellcode mit ConsoleWrite($sSource) angezeigt wird.

    BugFix

    Ja, die ist leider richtig (schei*e) ... X/ im TV funktioniert sie.

  • TV Senderliste bearbeiten

    • dieselwiesel
    • 13. Dezember 2022 um 00:39

    Hallo an Alle!

    Lang ist es her, dass ich mich mit AutoIT beschäftigt habe, nun ist es mal wieder soweit ^^ Wollte am Wochenende die Senderliste auf meinem Fernseher aktualisieren. Habe mir dazu eine fertige Liste runtergeladen und in den TV geschoben. Nun ist diese sehr lang und mit verschlüsselten als auch fremdsprachigen Sendern. Habe mir dann ein paar Programme gezogen, mit denen man Sender verschieben/löschen kann, aber das dauerte mir alles zu lange.

    Habe weiter gesucht und die Seite Satindex gefunden, auf der man sich Sender mit seinen Kriterien anzeigen lassen, aber keine Liste dazu downloaden kann. Jetzt würde mich interessieren, ob man sich z.B. von Satindex via Skript eine Liste mit den Namen erstellen kann und dann alles was nicht auf der Liste steht aus der Datei zeilenweise löscht. Vielleicht gibt es auch noch einen einfacheren Weg? :/ Danke schonmal...

    Habe die Liste auch mal angehängt. Die Originalendung lautet allerdings .SDX und lässt sich auch mit dem Notepad öffnen.

    Dateien

    Fernsehliste.txt 120,45 kB – 462 Downloads
  • Prüf-/Checksumme für Datei?

    • dieselwiesel
    • 29. Dezember 2018 um 23:12

    Vielen Dank für Eure Antworten!!! :thumbup:

    Es sollen nur kleinere Dateien geprüft werden. Kann ich die Varianten für X86 und X64 eigentlich gleichermaßen verwenden?

  • Prüf-/Checksumme für Datei?

    • dieselwiesel
    • 27. Dezember 2018 um 22:50

    Das mache ich fast immer! Den Beitrag habe ich allerdings nicht gesehen.

    Mein Versuch lief über exf.exe und StdoutRead - allerdings komme ich dann wieder nicht zurecht mit dem Extrahieren der Checksumme ^^

    Da kommt dann je nach Abfrage folgendes raus...

    exf.exe -osfv -crc32 mspaint.exe | findstr /R /I /C:"\<mspaint.exe" --> mspaint.exe 645b000f

    oder

    exf.exe -crc32 mspaint.exe | findstr /R /I /C:"\<crc32" --> 645b000f ?CRC32*mspaint.exe

  • Prüf-/Checksumme für Datei?

    • dieselwiesel
    • 27. Dezember 2018 um 22:00

    Dank dir erstmal!!! Gibt es auch was "einfacheres" - CRC z.B.?

  • Prüf-/Checksumme für Datei?

    • dieselwiesel
    • 27. Dezember 2018 um 21:33

    Hi @all

    Gibt es eine Funktion, mit der man eine Prüf-/Checksumme einer Datei ermitteln kann sodass ein Skript weiß das es sich um die richtige Datei handelt?

  • INIRead -> Array -> vergleichen -> INIWrite

    • dieselwiesel
    • 4. Oktober 2018 um 23:41
    Zitat von alpines

    So wie du das gelöst hast kann man das deutlich kürzen.

    Wenn man das nötige Know-How hat mit Sicherheit! Hab grad geschaut, ich habs net 8o

    Zitat von alpines

    Was ist denn wenn die letzte Datei als drive kein C: hat sondern D:? Dein Skript vergleicht doch nichts, das liest einfach nur den Wert in BASIS aus und hängt sie alle hintereinander,

    Dann würde das Programm schon beim Starten Fehlermeldungen bringen, weil es den Dateiordner net lokalisieren/laden kann. Theoretischer Weise müssten VARIABLE, DEFAULTS und COUNTRY in jeder INI identisch sein! Da wäre der Vergleich rein rhethorisch - damit ich mich besser fühle und wieder was dazu gelernt habe. Nur bei Basis kommen unterschiedliche Werte raus, die einfach nur zusammen gefügt werden müssen.

    Zitat von alpines

    Wo speicherst du denn was ab? Wo überprüfst du ob da unterschiedliche Werte vorhanden sind?

    Soweit bin ich doch noch nich :D Was ich für die zu erstellende INI brauch möchte ich in Local $drive, $typ, $country, $basis speichern. Wie ich es vergleiche, danach such ich jetzt, bis dahin sind die Werte im Array.

  • INIRead -> Array -> vergleichen -> INIWrite

    • dieselwiesel
    • 4. Oktober 2018 um 22:41

    alpines

    Wenn dann möchte ich es doch richtig wissen, mit so halben Sachen gebe ich mich auch net zufrieden ^^ Wenn ich das so mache u. ne Datei fehlt, habe ich ne leere Zeile drin. Da weis ich net inwieweit es das Verleichen beeinträchtigt? Das ist jetzt mit ReDiM Option so wie ich es auf der Seite von BugFix entnehmen konnte. Den wert= für die neue INI konnte ich damit schon ermitteln.

    Spoiler anzeigen
    AutoIt
    #include <array.au3>
    
    Local $sFiles[4] = [["1.ini"], ["2.ini"], ["3.ini"], ["4.ini"]]
    
    Local $aSection[4][2] = [["VARIABLE", "drive"], ["DEFAULTS", "typ"], ["COUNTRY", "country"], ["BASIS", "Wert"]]
    
    Local $sArray[1][4]
    
    Local $drive, $typ, $country, $basis
    
        For $i = 0 To UBound($sFiles) - 1
    
            If FileExists(@ScriptDir & "\" & $sFiles[$i]) Then
    
                For $j = 0 To UBound($aSection) - 1
    
                        $read = IniRead(@ScriptDir & "\" & $sFiles[$i], $aSection[$j][0], $aSection[$j][1], "")
                        
                        If Not @error Then
                            If $read <> "" Then
                                If $sArray[Ubound($sArray)-1][$j] <> '' Then
                                    ReDim $sArray[Ubound($sArray)+1][4]
                                EndIf
    
                                $sArray[Ubound($sArray)-1][$j] = $read
                            EndIf
                        EndIf
                Next
            EndIf
        Next
    
    ;_ArrayDisplay($array
    
    
    For $k = 0 To UBound($sArray) - 1
    
        $basis &= $sArray[$k][3] & ","
    
    Next
    
    ConsoleWrite(StringTrimRight($basis, 1) & @CRLF)
    Alles anzeigen

    Wie gesagt, funktioniert - ob es korrekt ist entzieht sich meiner Kentniss. Wenn einer der sich damit auskennt Fehler sieht oder weis wie man es kürzen kann, wäre ich dankbar dafür!

    Werde jetzt erstmal noch ein bißchen lesen u. probieren wie ich die Werte vergleichen kann. Als Ausgangswert möchte ich dazu die erste Zeile des Array's ( $sArray[0][x] ) verwenden.

  • INIRead -> Array -> vergleichen -> INIWrite

    • dieselwiesel
    • 4. Oktober 2018 um 15:41

    Thx 4 reply. Hab noch ein bißchen probiert und "gekürzt" und bekomme die Werte nun im Array angezeigt...

    Spoiler anzeigen
    AutoIt
    #include <Array.au3>
    
    Local $sFiles[4] = [["1.ini"], ["2.ini"], ["3.ini"], ["4.ini"]]
    
    Local $aSection[4][2] = [["VARIABLE", "drive"], ["DEFAULTS", "typ"], ["COUNTRY", "country"], ["BASIS", "Wert"]]
    
    Local $sArray[4][4]
    
    
        For $i = 0 To UBound($sFiles) - 1
    
            If FileExists(@ScriptDir & "\" & $sFiles[$i]) Then
    
                For $j = 0 To UBound($aSection) - 1
    
                        $read = IniRead(@ScriptDir & "\" & $sFiles[$i], $aSection[$j][0], $aSection[$j][1], "")
                        If Not @error Then
    
                            $sArray[$i][$j] = $read
    
                        EndIf
    
                Next
    
            EndIf
        Next
    
    _ArrayDisplay($sArray)
    Alles anzeigen

    Primitiv, ich weis - aber die Werte stehen erstmal drin. Habe $sArray auf [4][4] gesetzt, weil das die max. zu erwartende Menge ist. Wenn das automatisch erweitert werden soll, wird das doch per ReDim gelöst (habe auf der HP von bug-fix gelesen und es so verstanden?!). Von Errorhandling mal ganz abgesehen. Mühsam ernährt sich das Eichhörnchen bzw. im dem Fall das Wiesel :D

  • INIRead -> Array -> vergleichen -> INIWrite

    • dieselwiesel
    • 4. Oktober 2018 um 11:53
    Zitat von alpines


    Der Ansatz ist ja schon mal nicht schlecht, alle Dateien durchgehen und die Ergebnisse abspeichern.

    Vom Abspeichern ist das noch weit entfernt ^^ Es soll ja geprüft werden ist die Datei vorhanden, wenn ja die Werte auslesen und daraufhin ein Array mit den Werten erstellen.

    Wenn ich vorher eines erstelle, jedoch eine/mehrere/alle INI Dateien nicht vorhanden sind bleibt das ja alles leer?!

    Zitat von alpines

    Nur hast du keine Ahnung wie du die Vergleiche anstellen sollst, aber das ist kein Problem.

    Das ist dann das nächste Übel... :(

  • INIRead -> Array -> vergleichen -> INIWrite

    • dieselwiesel
    • 4. Oktober 2018 um 10:31

    Hi @all

    Möchte diverse Werte aus 4 INI Dateien auslesen, diese miteinander vergleichen und zusammengefasst in eine neue INI setzen. Leider hapert es an der ganzen Array Geschichte, sodass ich net weiter komme. Das hier sind die Ansätze um die Werte erstmal zu bekommen...

    Spoiler anzeigen
    AutoIt
    #include <Array.au3>
    
    Local $sFiles[5] = [[4], ["1.ini"], ["2.ini"], ["3.ini"], ["4.ini"]]
    
    Local $aSection[5][2] = [[4, ""], ["VARIABLE", "drive"], ["DEFAULTS", "typ"], ["COUNTRY", "country"], ["BASIS", "Wert"]]
    
    Local $sArray[1]
    
    
        For $i = 1 To UBound($sFiles) - 1
    
            If FileExists(@ScriptDir & "\" & $sFiles[$i]) Then
    
                For $j = 1 To UBound($aSection) - 1
    
                        $read = IniRead(@ScriptDir & "\" & $sFiles[$i], $aSection[$j][0], $aSection[$j][1], "")
                        If Not @error Then
    
                            ; ???
    
                        EndIf
    
                Next
    
            EndIf
        Next
    Alles anzeigen

    Das was ausgelesen wird, soll verglichen werden (Array?). Im Normalfall sind die ersten 3 Keys identisch und der Letzte unterschiedlich.

    Code
    1.INI -> C: C DE 1
    2.INI -> C: C DE 2
    3.INI -> C: C DE 3
    4.INI -> C: C DE 4

    Zusammengefasst sollte es dann so ausschauen.

    Code
    [VARIABLE]
    drive=C:
    typ=C
    country=de
    wert=1,2,3,4

    Hoffe das jemand von Euch eine Idee dazu hat? Danke schonmal...

  • Kann man um einen String "replacen"?

    • dieselwiesel
    • 21. Juli 2018 um 10:43

    Bitnugger

    Wenn nach der Klammer auf ein Fragezeichen steht (? ...) (ausser vllt bei (?<name> ... ) ) kann man es nicht als "Zeiger" nutzen?! Mit dem Thema kann man sich stunden-/tagelang befassen :) Nice ist es natürlich, wenn man ein Bsp. dazu bekommt bei dem man nachvollziehen kann wie es gemeint ist - DANKE dafür!

    Hab da noch eins gefunden...

    USBSTOR\DISK&VEN_GENERIC-&PROD_COMPACT_FLASH&REV_1.01\7&2276EB9E&0&058F63646476&¶

    1:·Generic-·Compact·Flash·USB·Device¶

    Kein Leerzeichen zwischen dem letzten Zeichen und dem Doppelpunkt. Habe mal mittels deinen Bsp., der Onlinehilfe und dem Tester das probiert '(.+?)(?:\s+|)(:.*)', '$1' - mit ner Verschiebung drin. Weis net ob man es noch kürzer/anders machen kann, weil ich würde nur die 1. Gruppe benötigen...

  • Kann man um einen String "replacen"?

    • dieselwiesel
    • 20. Juli 2018 um 22:38

    Bitnugger

    Also je mehr Klammern, desto mehr "Zeiger" und die kann man auch noch in verschiedener Reihenfolge abrufen?! Man lernt nie aus...

    Simpel

    Danke für dein Bsp. Allerdings bekomme ich in ScitE mit '^(.*\\.*\\[\w\d\&]+)', '' -> ·········:·HID-konformes·Benutzersteuergerät¶

    ¶

    und mit '^(.*\\.*\\[\w\d\&]+)', '$1' ->

    HID\VID_046D&PID_C526&MI_01&COL01\7&189E6BF7&0&0000·········:·HID-konformes·Benutzersteuergerät¶

    ¶


    ausgegeben. Die Punkte sollen dabei Leerzeichen und die ¶ Absätze symbolisieren.

  • Kann man um einen String "replacen"?

    • dieselwiesel
    • 20. Juli 2018 um 10:46

    Danke für eure Beispiele und die Erklärung mit dem $1. Wenn ich das richtig verstanden habe ist das $1 in dem Moment wie eine Variable zu betrachten?!

    Kann man die Abfrage noch weiter verallgemeinern? Gibt ja weitere Geräteinstanzpfade wie z.B. PCI, HID, STORAGE, USBSTOR, ROOT usw. Mich würde jeweils erste Teil (grün) interessieren der Rest ist uninteressant.

    HID\VID_046D&PID_C526&MI_01&COL01\7&189E6BF7&0&0000·········:·HID-konformes·Benu¶

    tzersteuergerõt¶

    ¶


    Lt. regex101 würde mit '(?i)(\h+\:.*)\R?', '' das alles entfernt werden ·········:·HID-konformes·Benu¶

    tzersteuergerõt¶ . Interessant wäre vielleicht andersrum nach einer Kombination aus Buchstaben, Zahlen und Zeichen (\ _ &) zu suchen und die dann evtl. per $1 wiederzugeben :/

  • Kann man um einen String "replacen"?

    • dieselwiesel
    • 19. Juli 2018 um 23:22

    Die regex101 Seite kenne ich. Dort hab ich schon des öfteren versucht zu verstehen wie aus nem String ein Punkt, Punkt, Komma, Strich wird :D Die anderen hatte ich gestern Abend auch offen wie ich nach nem String to RegEx Generator gesucht habe. Bin auch über Programme wie RegexBuddy u. RegexMagic gestoßen - die sind sehr umfangreich ||

    Brauche gelegentlich den Geräteinstanzpfad u. lese ihn mit devcon aus (würde z.B. auch mit wmic gehen, ich weis). Dabei kommen halt immer ewig lange Sachen mit Leerzeichen und Absätzen vor.

    Code
    USB\VID_05B8&PID_3143\5&95B63F&0&2··························:·USB-Eingabegerõt¶
    ¶

    Bei dem kann alles hinter der letzten 2 weg. Habe es damit '(?i)(\h+\:)(.*)\R?', '' mal probiert, funktionieren tut es aber ob es fachlich richtig ist - k. A. :/

    Was hat es mit der $1 im Bsp. von Bitnugger auf sich? Setze ich die in meinem Test ein, klappts nimmer.

  • Kann man um einen String "replacen"?

    • dieselwiesel
    • 19. Juli 2018 um 09:49

    Sagt mal, gibt es evtl. Programme welche einen solchen Code anhand eines Strings erstellen (also reverse)? Ist wirklich ne feine Sache, aber ich Hortkind hab da null Durchblick :( Tester gibt es ja etliche, aber was will man testen wenn man nicht weiß wie man es machen soll. Vielleicht wäre ein "allg. RegEx Anfragen" Thread sinnvoll, damit man nicht jedesmal ein neues Thema eröffnen ?!

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™