WriteFile Hilfe benötigt

  • Hallo.

    Ich kenne mich mit autoit noch nicht so aus und brauche Hilfe bei der Funktion FileWrite.

    Es soll eine .xml Datei erstellt werden. Mein Code für FileWrite bis jetzt:

    [autoit]

    $file = FileOpen("HP.xml", 1)

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

    ; Check if file opened for writing OK
    If $file = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
    EndIf

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

    $test= "wert1"

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

    FileWriteLine($file, "<?xml version="1.0"?>")
    FileWriteLine($file, "Hallo" $test)

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

    FileClose($file)

    [/autoit]

    Der Fehler sind bei:
    1. FileWriteLine($file,"<?xml version ="1.0"?>")
    und
    2. FileWriteLine($File, "Hallo" $test)

    Der erste Fehler ist glaube ich wegen den "1.0". Kann man das irgendwie beheben?

    zum 2. Fehler: kann man den Text mit variablen schreiben?. Also in der 2. Zeile sollte dann stehen: Hallo wert1

    3 Mal editiert, zuletzt von Henry (21. April 2008 um 15:48)

  • Hi, versuchs mal so:

    [autoit]

    $file = FileOpen("HP.xml", 1)

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

    ; Check if file opened for writing OK
    If $file = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
    EndIf

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

    $test= "wert1"

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

    FileWrite($file, '<?xml version="1.0"?>' & @CRLF & "Hallo " & $test)

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

    FileClose($file)

    [/autoit]

    Zu 1: Wenn " schon im Inhalt vorkommt, dann benutz als Abgrenzung nicht " sondern ', da sonst der Editor nicht genau weiss, wo der String endet.
    Zu 2: Text und Variable müssen mit einem & "zusammengefügt" werden. Also "test" & $test.

    @CRLF steht für Zeilenumbruch.

  • noch ne kurze Frage, kann man einen ganzen Text schreiben, ohne jedesmal FileWrite($File, '') zu schreiben?

    Also zum Beispiel:

    [autoit]

    FileWrite($File

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

    "Hallo
    hier steht der Inhalt

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

    blablabla")

    [/autoit]
  • so glaube ich.

    [autoit]

    FileWrite($File,"hallo"&@CRLF&@CRLF&"autoit"&@CRLF&"user")

    [/autoit]


    das ist dann
    hallo

    autoit
    user

    2 Mal editiert, zuletzt von senden9 (21. April 2008 um 15:08)

  • hm.. geht das nur so?

    Weil ich hätte einen längeren text über 250 Zeilen. Das wäre ziehmlich aufwendig, wenn ich es so mache.

    [autoit]

    FileWrite($file, "zeile1: " &$wert1 & @CRLF& "zeile2" &@CRLF& "zeile3:" & $Wert3 & @crlf & "Zeile4... und so weiter")

    [/autoit]

    Wenn ich das 250 Zeilen lang machen muss, ist das sehr viel aufwand...

  • ich habs jetzt mit dieser Methode gemacht:

    [autoit]

    FileWrite($file, "zeile1: ")
    FileWrite($file, "zeile2: ")

    [/autoit]

    usw.

    Hab dafür ein Macro verwendet (mit MacroX). Dann ging es in einer Minute^^