Nächst höhere Nummer finden und Zeile auslesen.

  • Hey Leute,
    ich habe mal wieder ein Problem mit dem ich nicht alleine klar komme. Ich möchte bestimmte Daten aus einem Textfile holen, der etwa folgendermaßen ausschaut:

    309903954330074281 1401793200 1800
    Titel
    Info info
    info...

    309903954330074282 1401795000 2700
    Titel
    Info info info...

    309903954330075105 1401797700 2700
    Titel
    Info
    info
    info...

    Es handelt sich hier um EPG Daten und ich möchte die Sendezeit der nachfolgenden Sendung ermitteln. Der erste Zahlenwert ist die ID der Sendung. Der zweite Wert ist die Startzeit und der dritte Wert ist die Dauer. Angenommen ich bin gerade in der zweiten Sendung mit der ID 309903954330074282. Dann hat die nachfolgende Sendung hier die ID 309903954330075105.

    Bei meinem Versuch kommt nur Schwachsinn heraus. Das Ergebnis bei meiner Vorgehensweise:

    309903954330074283 1401793200 1800
    (Sendung + 1) (Zeit 1. Sendung) (Zeit 1. Sendung)

    Ich hoffe mal, mir kann da jemand weiter helfen, weil ich da momentan nicht weiter komme.

    [autoit]


    Dim $b1, $b2, $b3, $b4, $b5, $b6, $b1[1][3]

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

    _FileReadToArray($PfadT & "ChannelEPG.txt", $b2)
    If Not @Error Then
    Dim $nextshow2 = Int($act_Sendungsinfo1) + 1
    For $l = 1 to ubound($b2)-1
    $aSplit2 = stringsplit($b2[$l], " ")
    If $nextshow2 = $aSplit2[1] Then
    $b1[0][0] = $nextshow2 ; SendungsID
    $b1[0][1] = $aSplit2[2] ; Startzeit
    $b1[0][2] = $aSplit2[3] ; Dauer
    exitloop
    Else
    Dim $nextshow2 = Int($nextshow2) + 1
    EndIf
    Next
    MsgBox(4096, "", $b1[0][0] & " " & $b1[0][1] & " " & $b1[0][2]); zur Ergebniskontrolle
    EndIf

    [/autoit]

    Viele Grüße autoiter

    Grüße autoiter

    Einmal editiert, zuletzt von autoiter (3. Juni 2014 um 14:36)

  • Es handelt sich hier um EPG Daten und ich möchte die Sendezeit der nachfolgenden Sendung ermitteln.


    Vielleicht verstehe ich hier was falsch aber das wäre doch lediglich Beginn der aktuellen Sendung + Dauer der aktuellen Sendung.
    In deinem Fall: 1401795000 + 2700 = 1401797700.
    Also ab dann nur noch durchgehen und schauen welche Sendung 1401797700 anfängt.

  • Äh ja, natürlich. Daran habe ich echt nicht gedacht :rolleyes:
    Echt blöd. Danke dir schon mal. Das spart mir den Unsinn, den ich mit der Variable nextshow2 mache.

    Grüße autoiter