Datenfiles editieren

  • Servus


    Was möchte ich tun:
    Datei öffnen
    Inhalt zeilenweise lesen (ab einer bestimmten Zeile)
    Zeile editieren
    Zeile zurückschreiben (ersetzen der gelesenen Zeile)
    nächste Zeile lesen
    usw.
    Datei schliessen


    Manchmal soll auch eine neue Zeile eingeschoben (nicht angehängt) werden.
    Letzteres ist mir so schon gelungen:


    _FileWriteToLine("d:\test\file.abc", $zeilennummer, $zeile, 0)


    (aber auch nicht immer) ?(



    Für Erstes wollte ich so vorgehen:


    $fhandle = FileOpen("d:\test\file.abc", 0) ; Datei zum lesen öffnen
    $zeile = FileReadLine($fhandle, $zeilennummer) ; Zeile lesen; $zeilennummer wird vorher gesetzt oder abgefragt
    while $zeile ;solange es Zeilen gibt
    $zeileneu = geänderte Zeile ; (editieren ist kein Problem)
    _FileWriteToLine("d:\test\file.abc", $zeilennummer, $zeileneu, 1) ;Zeile zurückschreiben
    $zeilennummer = $zeilennummer + 1 ;Zeilennummer weiterzählen
    $zeile = FileReadLine($fhandle); nächste Zeile lesen
    WEnd
    FileClose($fhandle) ; Datei schliessen


    Leider funktionierts so nicht (das Zurückschreiben) -
    * weil das hier was damit zu tun hat? :
    [ offen ] Anfänger Frage
    * oder der Fehler wo? liegt?
    * oder würdet Ihr das ganz anders machen? (vielleicht gibts ja überhaupt was besseres dafür - als Anfänger sind mir ja noch viele Funktionen unbekannt ;) )


    SG,
    entsel

    Schöne Grüße,
    entsel
    AutoLisp(eln) geht ganz gut, aber AutoIt nur mit Dictionary.
    Das Problem - man sollte wissen, welche Vokabel man sucht.

    Einmal editiert, zuletzt von entsel ()

  • Hallo entsel,


    warum liest du nicht mit

    _FileRadToArray

    alles in ein Array, manipulierst dann dort die Daten und schreibst das ganze mit

    _FileWriteFromArray

    wieder in eine Datei,


    mfg autoBert

  • Hallo Ihr,


    Hab jetzt versucht, Eure Tipps umzusetzen - es ging nicht, anders probiert, und, und ,und ... es ging nicht.
    Bis ich jetzt draufgekommen bin - das File war .... ich fass es nicht - schreibgeschützt !


    Ich verzieh mich ins Winkerl - eine Runde schämen!


    SG, entsel

    Schöne Grüße,
    entsel
    AutoLisp(eln) geht ganz gut, aber AutoIt nur mit Dictionary.
    Das Problem - man sollte wissen, welche Vokabel man sucht.