.plist konvertieren mit Problemen

  • Hey :D

    Da ich für eine Mac Umsetzung von HearTheRadio plist brauche, bín ich gerade dabei, die plist in ini zu konvertieren. Hier mein Script:

    Spoiler anzeigen
    [autoit]

    $Open = FileOpen( "Stations.plist", 128)
    $Text = FileRead( $Open)
    MsgBox( 0, "", $Text)
    $Text = StringTrimLeft( $Text,200)
    $Text = StringTrimRight($Text,27)
    FileWrite( "Cache", $Text)
    $Zeilen = _FileCountLines( "Stations.plist")
    MsgBox( 0, "", $Text)
    _FileReadToArray( "Cache", $array)
    MsgBox( 0, "Text", $array[1] & "=" & $array[2] & @CRLF & $array[3] & $array[4] & @CRLF & $array[$array[0]])
    $Percent = 100 / $Zeilen
    ProgressOn( "Working...", "We are working...")
    For $i = 1 To $Zeilen Step 1
    ProgressSet( $Zeilen * $Percent)
    $Line_Text = StringStripWS( $array[$i],8)
    $Line_TextSplit = StringReplace( $Line_Text, "<key>", "")
    $Line_TextSplit = StringReplace( $Line_TextSplit, "</key>", "")
    _FileWriteToLine( "Cache.txt", $i,$Line_TextSplit)
    $Line_TextSplit = StringReplace( $Line_TextSplit, "<string>", "")
    $Line_TextSplit = StringReplace( $Line_TextSplit, "</string>", "")
    _FileWriteToLine( "Cache.txt", $i,$Line_TextSplit)
    Next
    ProgressOff()
    MsgBox( 0, "FERTIG!", "FERTIG!")

    [/autoit]

    Das Problem ist, dass nur folgendes rauskommt:

    Spoiler anzeigen

    Hier die plist:

    Spoiler anzeigen

    Gibt es eventuell eine plist UDF? Habe nämlich keine gefunden...

    Danke für die Hilfe!

    MFG

    [Blockierte Grafik: http://stefan.blagojevic.at/loading.gif]

    Design, Modellbau, CAD <3
    AutoCAD, ArchiCAD, REVIT (ist ein Scheiss, habe aber das Zertifikat)

    Cinema 4D, RuckZuck Statik Programm

    Michael Bay als Architekt


    Da eine Glasfassade! Booom Sichtbeton! Laminiertes Bild auf Mosaiksteinchen! Granit! Granit! Granit! Sichtbetonwand mit 50° Neigung!
    Holzverkleidung erscheint da! Boooooom!

  • Ich vermute, du solltest die Zeilen der "Cache" Datei zählen lassen, nicht die Zeilen der .plist

    [autoit]


    $Zeilen = _FileCountLines( "Cache")

    [/autoit]


    Ein ubound($array) wäre evtl. noch eleganter.

    Wer andern eine Bratwurst brät
    der hat ein Bratwurstbratgerät.

  • OK, habe es nun verbessert:

    Spoiler anzeigen
    [autoit]

    $Open = FileOpen( "Stations.plist", 128)
    $Text = FileRead( $Open)
    MsgBox( 0, "", $Text)
    $Text = StringTrimLeft( $Text,200)
    $Text = StringTrimRight($Text,27)
    FileWrite( "Cache", $Text)
    MsgBox( 0, "", $Text)
    _FileReadToArray( "Cache", $array)
    $Zeilen = _FileCountLines( "Cache")
    MsgBox( 0, "Text", $array)
    $Percent = 100 / $Zeilen
    ProgressOn( "Working...", "We are working...")
    For $i = 1 To $Zeilen Step 1
    ProgressSet( $Zeilen * $Percent)
    $Line_Text = StringStripWS( $array[$i],8)
    $Line_TextSplit = StringReplace( $Line_Text, "<key>", "")
    $Line_TextSplit = StringReplace( $Line_TextSplit, "</key>", "")
    $Line_TextSplit = StringReplace( $Line_TextSplit, "<string>", "")
    $Line_TextSplit = StringReplace( $Line_TextSplit, "</string>", "")
    _FileWriteToLine( "Cache.txt", $i,$Line_TextSplit)
    Next
    ProgressOff()
    MsgBox( 0, "FERTIG!", "FERTIG!")

    [/autoit]

    Allerdings kommt noch immer was falsches raus:

    Spoiler anzeigen

    Also die Zeichen sind verschoben und die Einträge sind doppelt. Was mache ich falsch? ;(

    [Blockierte Grafik: http://stefan.blagojevic.at/loading.gif]

    Design, Modellbau, CAD <3
    AutoCAD, ArchiCAD, REVIT (ist ein Scheiss, habe aber das Zertifikat)

    Cinema 4D, RuckZuck Statik Programm

    Michael Bay als Architekt


    Da eine Glasfassade! Booom Sichtbeton! Laminiertes Bild auf Mosaiksteinchen! Granit! Granit! Granit! Sichtbetonwand mit 50° Neigung!
    Holzverkleidung erscheint da! Boooooom!

  • Versuch mal das hier:

    [autoit]


    _FileWriteToLine( "Cache.txt", $i,$Line_TextSplit,1)

    [/autoit]


    Damit wird die alte "Cache" Datei gnadenlos überschrieben.

    Wer andern eine Bratwurst brät
    der hat ein Bratwurstbratgerät.