FileWrite problem wen datei nicht vorhanden

  • Ich habe den Befehl FileWrite
    gefunden hier kann ich ja Datei auswählen in welche geschrieben werden soll und wo genau.
    Jedoch suche ich eine Funktion, die mir eine Datei erstellt.
    und dann einen Text dort einfügt.

    erreichen will ich, das ich übe rein Formular eine doc datei erstelle.

    Ev hat jemand nen befehl zu hand wo ich nachlesen kann.
    Danke schon mal.

    Gruß

    Einmal editiert, zuletzt von DummDumm (28. September 2009 um 14:04)

  • Hi,

    ist in der Hilfe von FileOpen () genau beschrieben:

    [autoit]

    $file = FileOpen (@ScriptDir & "\meineTextdateie.txt", 1) ; öffnet Datei zum Schreiben, Zeilen werden angefügt
    ;oder
    ;$file = FileOpen (@ScriptDir & "\meineTextdateie.txt", 2) ; öffnet Datei zum Schreiben, vorh. Inhalte werden überschrieben
    FileWrite ($file, "meine neue zeile")
    FileClose ($file)

    [/autoit]

    ;-))
    Stefan

  • Das problem wo ich ja habe ist.
    Das keine Datei vorhanden ist.
    Das heist ich habe

    Var1 =dateiname
    Var2 =text

    dann soll er die datei erstellen zb

    $var1&".doc",$var2"

    nur als beispiel.
    jedoch exestiert keine Datei dich ich vorher öffnen kann.

  • Hi,

    den Tip mit der Hilfe hast Du geflissentlich übersehen, oder? (Hilfe FileOpen)

    Ansonsten sollte das so aussehen:

    [autoit]

    $file = FileOpen ($Var1 & "\.doc", 2) ; öffne Datei mit Namen <$Var1>.doc, Falls Datei vorhanden überschreibe, ansonsten erzeuge Datei
    FileWrite = ($file, $Var2) ; Schreibe in Dateihandle $file Text $Var2
    FileClose ($file) ; Schliesse File Handle

    [/autoit]

    ;-))
    Stefan

  • Hallo DummDumm,

    lies dir mal die Bemerkungen zu FileOpen in der Hilfe durch:

    Zitat

    Auszug: Wenn eine Datei im Schreibmodus geöffnet wird, wird die Datei erstellt falls sie nicht existiert


    mfg (Auto)Bert

  • Sorry ab und zu sollte man auch verstehen was man Liest.
    Sry

    Aber dennoch schreibt er mir nur komische zahlen :(

    Spoiler anzeigen
    [autoit]

    func _neu()
    GLOBAL $Form1 = GUICreate("Neue Produktinfo", 530, 447, 192, 124)
    Global $Input1 = GUICtrlCreateInput("Input1", 24, 64, 193, 21)
    Global $Input2 = GUICtrlCreateInput("Input2", 264, 64, 241, 21)
    Global $Label1 = GUICtrlCreateLabel("Artikelnummer", 24, 40, 70, 17)
    Global $Label2 = GUICtrlCreateLabel("Bezeichnung", 264, 40, 66, 17)
    Global $Input3 = GUICtrlCreateInput("Input3", 24, 104, 481, 300)
    Global $button1 = GUICtrlCreateButton("Anlegen", 24, 420, 50, 25, $WS_GROUP)
    GUICtrlSetOnEvent(-1, "_neu2")
    GUISetOnEvent(-3, "_hide")
    GUISetState(@SW_SHOW)

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

    #EndRegion ### END Koda GUI section ###

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

    EndFUnc
    func _neu2()
    $file = FileOpen($ORDNER &$Input1&$Input2&".txt", 0)

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

    FileWrite($ORDNER &$Input1&$Input2&".txt", $Input3)

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

    FileClose($file)
    MsgBox(0, "ACHTUNG", "Datei erstellt")
    GUISetState(@SW_hide, $Form1)
    EndFunc
    func _hide()
    GUISetState(@SW_hide, $Form1)
    EndFunc

    [/autoit]
  • Hi,

    1) Solltest Du mehr von Deinem Code posten, um das Problem besser nachstellen zu können.
    2) Du liest und schreibst keine Inhalte, sondern die entsprechenden ControlID'S -> Nummernsalat

    [autoit]

    $file = FileOpen($ORDNER & GUICtrlRead ($Input1) & GUICtrlRead ($Input2) &".txt", 2)
    FileWrite($file, GUICtrlRead ($Input3))

    [/autoit]

    ;-))
    Stefan

  • Hallo DummDumm,

    dann probiere es mal so:

    Spoiler anzeigen
    [autoit]

    func _neu()
    GLOBAL $Form1 = GUICreate("Neue Produktinfo", 530, 447, 192, 124)
    Global $Input1 = GUICtrlCreateInput("Input1", 24, 64, 193, 21)
    Global $Input2 = GUICtrlCreateInput("Input2", 264, 64, 241, 21)
    Global $Label1 = GUICtrlCreateLabel("Artikelnummer", 24, 40, 70, 17)
    Global $Label2 = GUICtrlCreateLabel("Bezeichnung", 264, 40, 66, 17)
    Global $Input3 = GUICtrlCreateInput("Input3", 24, 104, 481, 300)
    Global $button1 = GUICtrlCreateButton("Anlegen", 24, 420, 50, 25, $WS_GROUP)
    GUICtrlSetOnEvent(-1, "_neu2")
    GUISetOnEvent(-3, "_hide")
    GUISetState(@SW_SHOW)

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

    #EndRegion ### END Koda GUI section ###

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

    EndFUnc
    func _neu2()
    $file = FileOpen($ORDNER &GuiCtrlRead($Input1)&GuiCtrlRead($Input2)&".txt", 0)

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

    FileWrite($ORDNER &$Input1&$Input2&".txt", GuiCtrlRead($Input3))

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

    FileClose($file)
    MsgBox(0, "ACHTUNG", "Datei erstellt")
    GUISetState(@SW_hide, $Form1)
    EndFunc
    func _hide()
    GUISetState(@SW_hide, $Form1)
    EndFunc

    [/autoit]

    und lies dir die Hilfe zu GuiCtrlRead durch,

    Edit: zu langsam

    mfg (Auto)Bert