An den Anfang und das Ende jeder Zeile etwas schreiben

  • Hallo,
    ich möchte eine Textdatei einlesen und an den Anfang und das Ende jeder Zeile etwas einfügen.
    Am Anfang und am Ende soll es jeweils immer das gleiche sein.

    Beispiel:

    Vorher

    a,b,c
    d,e,f
    g,h,i

    Nachher:

    Anfang a,b,c Ende
    Anfang d,e,f Ende
    Anfang g,h,i Ende

    Meine Frage ist jetzt wie ich halt jeweils am Anfang und am Ende jeder Zeile den gewünschten Text hin bekomme.

    mfg das Keks

    EDIT:
    Ich hab gerade ne Idee.
    Vielleicht müsst ihr mir doch nicht helfen.

    Ich melde mich gleich nochmal.

    Einmal editiert, zuletzt von das Keks (25. April 2011 um 23:40)

  • Am einfachsten geht das mit StringRegExpReplace.

    Beispiel
    [autoit]

    $sStart = "Anfang "
    $sEnd = " Ende"

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

    $sText = "Test" & @CRLF & "1234" & @CRLF & "abc cba"
    ConsoleWrite($sText & @CRLF & "------------" & @CRLF)

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

    $sReplace = StringRegExpReplace($sText, "(?m)(^\w.+\w).?$", $sStart & "$1" & $sEnd)
    ConsoleWrite($sReplace & @CRLF)

    [/autoit]
  • oder so
    [autoit]

    #Region - Timestamp
    ;2011-04-25 22:27:57
    #EndRegion
    #Include <File.au3>
    $sFile ="test.txt"
    $a = "Anfang"
    $b = "Ende"
    Local $aFile
    _FileReadToArray($sFile, $aFile)

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

    $hFile = FileOpen($sFile, 2)
    For $i = 1 To $aFile[0]
    $aFile[$i] = $a & $aFile[$i] & $b
    Next

    [/autoit]
  • Also,
    i2c: mit dem Skript ist die Datei danach leer :D

    name22: Mit deinem Skript komme ich gerade nicht so zurecht. Wo muss da das vom Anfang und das vom Ende stehen?

    Ich bastle mir selber gerade was mit FileReadLine und FileWriteLine.
    Bei FileWriteLine frage ich mich nur wo der Text der geschrieben werden soll hin muss:

    FileWriteLine ( "filehandle/filename", "line" )

    Wo kommt das da hin? ?(

    EDIT:
    Ah, "line" ist der Text.
    Aber wie gebe ich dann die Zeile an?

  • $sStart ist das was am Anfang angefügt werden soll, und $sEnd ist das was am Ende angefügt werden soll. Logisch oder? Start für den Anfang und End für das Ende...
    $sText ist der Text der bearbeitet werden soll.

    Zitat

    Ah, "line" ist der Text.
    Aber wie gebe ich dann die Zeile an?


    Gar nicht, die Funktion hängt nur an das Ende einer Datei etwas an. Du kannst aber natürlich auch _FileWriteToLine verwenden da wird in eine bestimmte Zeile geschrieben.

  • $sStart ist das was am Anfang angefügt werden soll, und $sEnd ist das was am Ende angefügt werden soll. Logisch oder? Start für den Anfang und End für das Ende...

    Ah, klar hatte ich auch gesehen *kopp@tisch*.
    Das 1234, abc cba und "------------" hatten mir nur verwirrt.

  • Hab ja auch eine Zeile vergessen, sorry :)

    [autoit]

    #Region - Timestamp
    ;2011-04-25 22:27:57
    #EndRegion
    #Include <File.au3>
    $sFile ="test.txt"
    $a = "Anfang"
    $b = "Ende"
    Local $aFile
    _FileReadToArray($sFile, $aFile)

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

    For $i = 1 To $aFile[0]
    $aFile[$i] = $a & $aFile[$i] & $b
    Next
    _FileWriteFromArray($sFile, $aFile,1)

    [/autoit]