Eingabefeld mit einem Button für zwei Funktionen

  • Hallo,

    über das Script

    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <File.au3>

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

    Opt('GuiOnEventMode',1) ;Schaltet den 'GuiOnEventMode' an
    Opt('OnExitFunc', 'Ende') ;Ruf die Funktion 'Ende' auf, wenn das Programm geschlossen wird

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

    #Region Variablen
    Global Const $File_Pfad = 'TestDatei.txt' ;Definiert den Pfad der .txt Datei
    #EndRegion

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

    #Region .txt Datei Erstellen und Öffnen
    If FileExists($File_Pfad) Then FileDelete($File_Pfad) ;Wenn die Datei vorhanden ist wird sie gelöscht!!!
    _FileCreate($File_Pfad) ;Erstellt die Datei
    $File_Handle = FileOpen($File_Pfad, 2) ;Öffnet die Datei
    #EndRegion

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

    #Region GUI Erstellen
    $Form1 = GUICreate('Form1', 181, 221, 192, 124) ;Erstellt ein Fenster
    GUISetOnEvent($GUI_EVENT_CLOSE, 'Ende') ;Wenn auf das 'X' geklickt wird, wird die Funktion 'Ende' aufgerufen
    $Edit1 = GUICtrlCreateEdit('', 0, 0, 180, 180) ;Erstellt ein Eingabefeld
    $Button1 = GUICtrlCreateButton('Speichern', 0, 180, 180, 40, $WS_GROUP) ;Erstellt den 'Sperichern' Button
    GUICtrlSetOnEvent(-1, 'Speichern') ;Wenn auf den Button 'Speichern' geklickt wird, wird die Funktion 'Speichern' aufgerufen
    GUISetState(@SW_SHOW) ;Zeigt das GUI
    #EndRegion

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

    #Region Endlosschleife ;Sorgt dafür, dass das Programm sich nicht schließt
    While 1
    Sleep(100)
    WEnd
    #EndRegion

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

    #Region Funktionen
    Func Speichern()
    FileWrite($File_Handle, GUICtrlRead($Edit1)) ;Überschreibt die Datei mit dem Wert aus dem Eingabefeld
    EndFunc

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

    Func Ende()
    FileClose($File_Handle) ;Schließt die Datei. Erst dann sieht man den Inahlt!!!
    Exit ;Schließ das Programm
    EndFunc
    #EndRegion

    [/autoit]

    möchte ich eine GUI haben, die mir eine beliebigen Text in eine Datei speichert.
    Über den Button Speichern soll nun erst der Text des Editfeld in die Textdatei geschrieben werden und anschließend dass Programm beendet werden.
    Natürlich darf die GUI auch viel viel kleiner werden. Ich möcht endlich nur eine Zeilemit 25 Zeichen eingeben und diese dann in eine Textdatei speichern. Geht das kürzer? Ein Button für eben speichern und schließen wäre super.

  • So, ist schnell zusammengezimmert :D

    [autoit]

    $sFile = @ScriptDir & "\Text.txt" ;// Optional Pfad + Name anpassen
    $hFile = FileOpen($sFile, 2) ;// Datei im Schreibmodus öffnen (falls sie nicht exstiert, wird sie erstellt)

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

    $sText = InputBox("Als Text Speichern", "Bitte gibt den Text ein und drücke 'Ok' zum Speichern") ;// InputBox erstellen
    FileWrite($hFile, $sText) ;// Tex in Datei schreiben

    [/autoit]

    Ist kommentiert & getestet.
    Du kannst ggf. den 2. Parameter bei FileOpen auf 1 ändern um die Zeile in der Textdatei unten anzufügen. (2 überschreibt den ggf. vorhandenen Inhalt)

    Mfg

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz

    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski