Konvertieren einer Textdatei zur einer CSV Datei

  • Huhu AutoITler, :)


    ich bin Anfänger finde das Tool aber mal echt genial. Habe jetzt ein kleines Projekt zum umsetzen dabei geht es darum eine kleine Intergration für eine Haussteuerung zu machen. Die Haussteuerrung soll im gewissen Maße die Reelbox steuern.

    Um genauer zu werden geht es darum eine Conf-Datei auszulesen und konvertiert in eine CSV-Datei zu schreiben innerhalb der CSV-Datei würde ich dann nur gewisse Spalten haben.

    Die Timers.txt ist die original Datei und enthält die entsprechenden Timereinstellungen.
    Die Timers.rar enthält die Timers.csv innerhalb der neuen zu erstellenden CSV-Datei bräuchte ich nur die die Spalten (C,D,E,H)

    Könnt Ihr mir da unter die Arme greifen, meine Gehirnwindungen sind schon ganz wund. ;(


    Grüße hier aus Marburg

    Marcus

    PS: Wenn ich die CSV über Excel erstelle nehme ich den ":" als Trennzeichen

  • Vielleicht so?

    [autoit]


    Local $csv, $line, $aTmp
    Local $delimter = ";"
    Local $file = FileOpen(@ScriptDir & "\timers.txt", 0)

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

    While 1
    $line = FileReadLine($file)
    If @error = -1 Then ExitLoop
    $aTmp = StringSplit($line, ":")
    If IsArray($aTmp) Then $csv &= $aTmp[3] & $delimter & $aTmp[4] & $delimter & $aTmp[5] & $delimter & $aTmp[8] & $delimter & @CRLF
    Wend
    FileClose($file)

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

    Local $write_csv = FileOpen(@ScriptDir & "\timers.csv", 2)
    FileWrite($write_csv, $csv)
    FileClose($write_csv)

    [/autoit]

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Hallo UEZ,

    1000 und einen Dank. Wenn ich es jetzt noch geregelt bekomme in den Spalten wo die Uhrzeiten sehen (Beispiel: 2015) folgendes Format hin zu bekommen: 20:15:00 wäre es super.

    Grüße
    Marcus

    Einmal editiert, zuletzt von Brind (7. Juni 2010 um 13:48)

  • Das hättest du auch selbst hinbekommen können:

    [autoit]


    Local $csv, $line, $aTmp
    Local $delimter = ";"
    Local $file = FileOpen(@ScriptDir & "\timers.txt", 0)
    If $file = -1 Then Exit
    While 1
    $line = FileReadLine($file)
    If @error = -1 Then ExitLoop
    $aTmp = StringSplit($line, ":")
    If IsArray($aTmp)And $aTmp[0] > 8 Then _
    $csv &= $aTmp[3] & $delimter & StringLeft($aTmp[4], 2) & ":" & StringRight($aTmp[4], 2) & ":00" & $delimter & _
    StringLeft($aTmp[5], 2) & ":" & StringRight($aTmp[5], 2) & ":00" & $delimter & _
    $aTmp[8] & $delimter & @CRLF
    Wend
    FileClose($file)

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

    Local $write_csv = FileOpen(@ScriptDir & "\timers.csv", 2)
    FileWrite($write_csv, $csv)
    FileClose($write_csv)

    [/autoit]

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Hallo RR04,


    vielen Dank für Deine Wilkommensgrüße. Ja, auch eine spannende Idee. Habe gerade mal vor 2 Tagen mit AutoIT angefangen und muss sagen das es mal mehr als nur gut ist. :)


    Meine nächte aufgabe wird sein die CSV wieder ein zu lesen und formatiert (Farbe Font etc) als RTF zu speichern, also es bleibst mega spannend.


    Grüße aus Marburg

    Marcus

  • Hallo Freunde,

    dank RichTxt hat alles bestens geklappt 1000 und einen Dank für Eure Hilfe.


    Grüße
    Marcus