Eingabefeld Inhalt löschen und Speichern

  • Du kannste es mal so versuchen

    [autoit]


    $Save2 = FileSaveDialog ( "Speichern unter...", @DesktopDir, "Textdateien (*.txt)" )
    If $Save2 <> ".txt" Then $Save2 &=".txt"
    FileWrite($Save2, (GUICtrlRead($Edit1)))

    [/autoit]

    $Save2 ist bei mir der FileSaveDialog dann musst du natürlich das $Save2 mit dem Namen ersetzten so wie dein FileSaveDialog heißt.

    Hast du vllt mal denn Code von der GUI?

    3 Mal editiert, zuletzt von König Mickey (22. Oktober 2007 um 15:55)

    • Offizieller Beitrag

    Hallo

    Wenn du nur eine Dateiendung zur auswahl hast (z.B. FileSaveDialog("Titel","","txtfiles (*.txt")")) dann reicht einfach sowas:

    [autoit]

    $FileSave = FileSaveDialog("Titel","","txtfiles (*.txt)")
    If StringRight($FileSave,4) <> ".txt" Then $FileSave &= ".txt"
    MsgBox(0,"",$FileSave)

    [/autoit]

    Wenn du mehere zur auswahl hast (FileSaveDialog("Titel","","txtfile (*.*)|programfiles (*.exe)|.....")) dann musst du diese Funktion hier verwenden:

    Spoiler anzeigen
    [autoit]

    ConsoleWrite(_FileSaveDialog("TEST",@DesktopDir,"ALL (*.*)|Excutables (*.exe)"))
    ;===============================================================================
    ;
    ; Function Name: _PickIconDialog()
    ; Description: Displays a dialog box that allows the user to choose an icon embedded in a resource such as an executable or DLL file
    ;
    ; Parameter(s): $sPath - Initial path to file
    ; $iIndex - Initial icon to select in the dialog (0-based index)
    ; $hWnd - [optional] Handle to parent window
    ;
    ; Return Value(s): Success - Returns a 2-element array containing the selected path and the selected index
    ; Failure - Returns "" and sets @error
    ;
    ; Author(s): Ultima
    ;
    Func _FileSaveDialog ($sTitle, $sInitDir, $sFilter = 'All (*.*)', $iOpt = 0, $sDefaultFile = "", $sDefaultExt = "", $mainGUI = 0)
    Local $iFileLen = 65536 ; Max chars in returned string
    ; API flags prepare
    Local $iFlag = BitOR (BitShift (BitAND ($iOpt, 2),-10), BitShift (BitAND ($iOpt,16), 3 ))
    ; Filter string to array convertion
    Local $asFLines = StringSplit ( $sFilter, '|'), $asFilter [$asFLines [0] *2+1]
    Local $i, $iStart, $iFinal, $suFilter = ''
    $asFilter [0] = $asFLines [0] *2
    For $i=1 To $asFLines [0]
    $iStart = StringInStr ($asFLines [$i], '(', 0, 1)
    $iFinal = StringInStr ($asFLines [$i], ')', 0,-1)
    $asFilter [$i*2-1] = StringStripWS (StringLeft ($asFLines [$i], $iStart-1), 3)
    $asFilter [$i*2] = StringStripWS (StringTrimRight (StringTrimLeft ($asFLines [$i], $iStart), StringLen ($asFLines [$i]) -$iFinal+1), 3)
    $suFilter = $suFilter & 'char[' & StringLen ($asFilter [$i*2-1])+1 & '];char[' & StringLen ($asFilter [$i*2])+1 & '];'
    Next
    ; Create API structures
    Local $uOFN = DllStructCreate ('dword;int;int;ptr;ptr;dword;dword;ptr;dword' & _
    ';ptr;int;ptr;ptr;dword;short;short;ptr;ptr;ptr;ptr;ptr;dword;dword' )
    Local $usTitle = DllStructCreate ('char[' & StringLen ($sTitle) +1 & ']')
    Local $usInitDir= DllStructCreate ('char[' & StringLen ($sInitDir) +1 & ']')
    Local $usFilter = DllStructCreate ($suFilter & 'char')
    Local $usFile = DllStructCreate ('char[' & $iFileLen & ']')
    Local $usExtn = DllStructCreate ('char[' & StringLen ($sDefaultExt) +1 & ']')
    For $i=1 To $asFilter [0]
    DllStructSetData ($usFilter, $i, $asFilter [$i])
    Next
    ; Set Data of API structures
    DllStructSetData ($usTitle, 1, $sTitle)
    DllStructSetData ($usInitDir, 1, $sInitDir)
    DllStructSetData ($usFile, 1, $sDefaultFile)
    DllStructSetData ($usExtn, 1, $sDefaultExt)
    DllStructSetData ($uOFN, 1, DllStructGetSize($uOFN))
    DllStructSetData ($uOFN, 2, $mainGUI)
    DllStructSetData ($uOFN, 4, DllStructGetPtr ($usFilter))
    DllStructSetData ($uOFN, 7, 1)
    DllStructSetData ($uOFN, 8, DllStructGetPtr ($usFile))
    DllStructSetData ($uOFN, 9, $iFileLen)
    DllStructSetData ($uOFN, 12, DllStructGetPtr ($usInitDir))
    DllStructSetData ($uOFN, 13, DllStructGetPtr ($usTitle))
    DllStructSetData ($uOFN, 14, $iFlag)
    DllStructSetData ($uOFN, 17, DllStructGetPtr ($usExtn))
    DllStructSetData ($uOFN, 23, BitShift (BitAND ($iOpt, 32), 5))
    ; Call API function
    $ret = DllCall ('comdlg32.dll', 'int', 'GetSaveFileName', _
    'ptr', DllStructGetPtr ($uOFN) )
    If $ret [0] Then
    Return DllStructGetData ($usFile, 1)
    Else
    SetError (1)
    Return ""
    EndIf
    EndFunc

    [/autoit]

    Mfg Spider

  • Zitat

    Original von König Mickey
    Du kannste es mal so versuchen

    [autoit]


    $Save2 = FileSaveDialog ( "Speichern unter...", @DesktopDir, "Textdateien (*.txt)" )
    If $Save2 <> ".txt" Then $Save2 &=".txt"
    FileWrite($Save2, (GUICtrlRead($Edit1)))

    [/autoit]

    $Save2 ist bei mir der FileSaveDialog dann musst du natürlich das $Save2 mit dem Namen ersetzten so wie dein FileSaveDialog heißt.

    Hast du vllt mal denn Code von der GUI?

    Danke @König Mickey genau das hatte ich gemeint. :]

    ich habe es jetzt so geschrieben.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    ; Fenster
    GUICreate("Speichern", 400, 400)

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

    ; Menü
    $menu = GUICtrlCreateMenu("Datei")
    $item = GUICtrlCreateMenuItem("Speichern", $menu)

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

    ; Schrift
    $font = "Comic Sans MS"
    $label = GUICtrlCreateLabel("Quelle", 10, 10, 50, 25)
    GUICtrlSetFont($label, 12, 100, 1, $font)
    GUICtrlSetColor($label, 0xfb00500)

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

    ; Edit
    $edit = GUICtrlCreateEdit("", 10, 40, 380, 330)
    GUICtrlSetBkColor($edit, 0x000000)
    GUICtrlSetColor($edit, 0xFFFFFF)

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

    GUISetState()

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

    While 1
    $nMsg = GUIGetMsg()

    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $item
    $save = FileSaveDialog ( "Speichern unter...", @DesktopDir, "Textdateien (*.txt)" )
    If $save <> ".txt" Then $save &=".txt"
    FileWrite($save, (GUICtrlRead($edit)))
    EndSwitch

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

    WEnd

    [/autoit]

    2 Mal editiert, zuletzt von m3hm3t (22. Oktober 2007 um 16:09)

  • Xenobiologist

    Ich möchte wissen wie ich für jedes File was mit meinem Programm erstellt wird eine eigenes Icon zu ordnen kann. (Also für HTML usw.)

    -----------------------------------------------------------------

    Undich will noch wissen wie es machen kann das er mehrere Formate abspeichert, zurauswahl habe ich sie schon im"FileSaveDialog" aber ich weiß nicht wie ich jedem zur auswahl stehenden Format die richtige Dateiendung (Dateityp) zuordne.

    Also wie geht das?

    GtaSpider
    Wenn ich gemeint war mit dem ganz langen Code für die auswahl mit mehreren, geht das auch kürzer?

    Und ich habe oben im Post schon verbessert hatte en Fehler drin :D :D :D

    @m3hm3t
    Ok schön das ich auch mal jemanden helfen konnte :D :D :D

    Einmal editiert, zuletzt von König Mickey (22. Oktober 2007 um 16:03)

  • Habe da noch kurz ne frage.
    Wie mache ich es wenn ich eine datei öffne, das der inhalt der datei in die edit erscheint?!

    Danke schon mal im voraus.

  • Ja das wollte ich auch noch Fragen aber auch pls die fragen von oben beantworten

  • Auch WENN man anfänger ist kann man

    1) PROBIEREN
    und 2) Mal HÖFLICH bitten! "ich will wissen", "sagt mir wie man das macht",
    "also wie geht das???"

    sind nicht gerade ein Zeichen der Höflichkeit..

    wenn FilesaveDialog("Test", "C:", "ALL (*.*)") Funktioniert, dann teste doch mal

    FileSaveDialog("Test", "C:", "Musikfiles (*.mp3, *.mp4)")

    Habs nicht getestet aber das wäre ein LOGISCHER <-- ansatz!

  • Danke für die antwort aba das kann doch garnicht funtzen

    FilesaveDialog("Test", "C:", "ALL (*.*)")

    Denn dann müsste man selber die Dateiendung (Dateityp) eingeben.

    Aber man soll ja z.b HTML auswählen dann als name z.b "TEST" und dann soll die Datei als "Test" (Mit dem Dateityp .html da sein)

    Könnte jemand da vllt helfenwäre sehr dankbar.

    Und wie macht man es das wenn ich z.b eine "Test.txt" öffne das der Inhalt dann in "Input" gezeigt wird und ihn dort bearbeiten kann?

    Spoiler anzeigen
    [autoit]

    ;Includes
    #include <GUIConstants.au3>
    #include <string.au3>

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

    ;GUI
    $Form1 = GUICreate("Form1", 616, 432, 193, 125)

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

    ;Input
    $Edit1 = GUICtrlCreateInput("", 0, 0, 632, 428)

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

    ;Menüs
    $Data = GUICtrlCreateMenu("&Datei")
    $New = GUICtrlCreateMenuItem("Neu...", $Data)
    $Open = GUICtrlCreateMenuItem("Öffnen...", $Data)
    $Save1 = GUICtrlCreateMenuItem("Speichern unter...", $Data)
    $Close = GUICtrlCreateMenuItem("Schließen", $Data)
    $Work = GUICtrlCreateMenu("&Bearbeiten")
    $Back = GUICtrlCreateMenuItem("Rückgängig", $Work)
    $Forward = GUICtrlCreateMenuItem("Wiederherstellen", $Work)
    $Cut = GUICtrlCreateMenuItem("Ausschneiden", $Work)
    $Copy = GUICtrlCreateMenuItem("Kopieren", $Work)
    $Paste = GUICtrlCreateMenuItem("Einfügen", $Work)
    $Select = GUICtrlCreateMenuItem("Alles markieren", $Work)
    $Options = GUICtrlCreateMenu("&Optionen")
    $Extras = GUICtrlCreateMenu("&Extras")
    $Check = GUICtrlCreateMenuItem("Auf Neue Version prüfen", $Extras)
    $Bug = GUICtrlCreateMenuItem("Bug Report", $Extras)
    $About = GUICtrlCreateMenuItem("Über das Programm", $Extras)
    $Help = GUICtrlCreateMenu("&Hilfe")

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

    ;Tray
    TraySetClick("9")
    $Check2 = TrayCreateItem("Auf Neue Version prüfen")
    $About2 = TrayCreateItem("Über das Programm")
    $Close2 = TrayCreateItem("Beenden")
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg

    ;Datei öffnen
    Case $Open
    FileOpenDialog ( "Datei öffnen", @DesktopDir, "Rapidshare Download Files (*.rsdf)|CryptLoad Files (*.ccf)|Textdateien (*.txt)|Batch (*.bat)|Change Main Device (*.cmd)|Hypertext Preprocessor (*.php)|Hypertext Mark-up Language (*.html)|Cascading Style Sheets (*.css)" )

    ;Datei speichern
    Case $Save1
    $Save2 = FileSaveDialog ( "Speichern unter...", @DesktopDir, "Rapidshare Download Files (*.rsdf)|CryptLoad Files (*.ccf)|Textdateien (*.txt)|Batch (*.bat)|Change Main Device (*.cmd)|Hypertext Preprocessor (*.php)|Hypertext Mark-up Language (*.html)|Cascading Style Sheets (*.css)" )
    If $Save2 <> ".txt" Then $Save2 &=".txt"
    FileWrite($Save2, (GUICtrlRead($Edit1)))

    ;per "X" beenden
    Case $GUI_EVENT_CLOSE
    Exit

    ;per "Beenden" im Tray beenden
    Case $Close2
    Exit

    ;per Menü-Item "Schließen" beenden
    Case $Close
    Exit

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

    EndSwitch
    WEnd

    [/autoit]

    Und wie macht man das man diese Dateitypen öffnen und Speichern kann.

    Spoiler anzeigen
    [autoit]

    "Rapidshare Download Files (*.rsdf)
    CryptLoad Files (*.ccf)
    Textdateien (*.txt)
    Batch (*.bat)
    Change Main Device (*.cmd)
    Hypertext Preprocessor (*.php)
    Hypertext Mark-up Language (*.html)
    Cascading Style Sheets (*.css)"

    [/autoit]

    Dickes Danke wnen geholfen wird. ;) ;) ;)

    Einmal editiert, zuletzt von König Mickey (22. Oktober 2007 um 19:30)

  • Zitat

    Original von m3hm3t
    Habe da noch kurz ne frage.
    Wie mache ich es wenn ich eine datei öffne, das der inhalt der datei in die edit erscheint?!

    Danke schon mal im voraus.

    Ich bräuchte unbedingt hilfe bitte?!

    Einmal editiert, zuletzt von m3hm3t (23. Oktober 2007 um 13:11)

    • Offizieller Beitrag

    Hallo

    NEIN Das geht nicht kürzer.. würde es eine küzere Variante geben würde ich sie Posten.

    Das mit dem Input ist einfach nur faulheit. Wir haben dir schon in der Shoutbox gesagt, such einfach mal in der Hilfe nach FileRead und GuiCtrlSEtData. Ich bin gerne bereit leuten zu helfen, die voher in der Hilfe geguckt haben und die Boarsuche benutzt haben, aber ich bin nich bereit Leuten zu helfen die einfach zu Faul sind zu Suchen und jetzt wollen das andere für sie suchen.

    Ich halte das eigentlich für Selbstverständlich.

    Mfg Spider

  • Ja ich habs versucht ich habe mich am FileSaveDialog orientier weil es ja eigentlich nur umgekehrt ist als speichern aba hat kein sinn bekomms net hin :( :( :( tut mir ja leid

    Also hab jetz was gemacht der öffnet die Datei jetz auch aba da steht dann jetz im Input eine "0" anstatt der Text der TXT Datei

    Mein Code

    Spoiler anzeigen
    [autoit]

    ;Includes
    #include <GUIConstants.au3>
    #include <string.au3>

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

    ;GUI
    $Form1 = GUICreate("Form1", 616, 432, 193, 125)

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

    ;Input
    $Input1 = GUICtrlCreateInput("", 0, 0, 632, 428)

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

    ;Menüs
    $Data = GUICtrlCreateMenu("&Datei")
    $New = GUICtrlCreateMenuItem("Neu...", $Data)
    $Open1 = GUICtrlCreateMenuItem("Öffnen...", $Data)
    $Save1 = GUICtrlCreateMenuItem("Speichern unter...", $Data)
    $Close = GUICtrlCreateMenuItem("Schließen", $Data)
    $Work = GUICtrlCreateMenu("&Bearbeiten")
    $Back = GUICtrlCreateMenuItem("Rückgängig", $Work)
    $Forward = GUICtrlCreateMenuItem("Wiederherstellen", $Work)
    $Cut = GUICtrlCreateMenuItem("Ausschneiden", $Work)
    $Copy = GUICtrlCreateMenuItem("Kopieren", $Work)
    $Paste = GUICtrlCreateMenuItem("Einfügen", $Work)
    $Select = GUICtrlCreateMenuItem("Alles markieren", $Work)
    $Options = GUICtrlCreateMenu("&Optionen")
    $Extras = GUICtrlCreateMenu("&Extras")
    $Check = GUICtrlCreateMenuItem("Auf Neue Version prüfen", $Extras)
    $Bug = GUICtrlCreateMenuItem("Bug Report", $Extras)
    $About = GUICtrlCreateMenuItem("Über das Programm", $Extras)
    $Help = GUICtrlCreateMenu("&Hilfe")

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

    ;Tray
    TraySetClick("9")
    $Check2 = TrayCreateItem("Auf Neue Version prüfen")
    $About2 = TrayCreateItem("Über das Programm")
    $Close2 = TrayCreateItem("Beenden")
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg

    ;Datei öffnen
    Case $Open1
    $Open2 = FileOpenDialog ( "Datei öffnen", @DesktopDir, "Rapidshare Download Files (*.rsdf)|CryptLoad Files (*.ccf)|Textdateien (*.txt)|Batch (*.bat)|Change Main Device (*.cmd)|Hypertext Preprocessor (*.php)|Hypertext Mark-up Language (*.html)|Cascading Style Sheets (*.css)" )
    FileRead ($Open2)
    GUICtrlSetData($Input1, (GUICtrlRead($Open2)))

    ;Datei speichern
    Case $Save1
    $Save2 = FileSaveDialog ( "Speichern unter...", @DesktopDir, "Rapidshare Download Files (*.rsdf)|CryptLoad Files (*.ccf)|Textdateien (*.txt)|Batch (*.bat)|Change Main Device (*.cmd)|Hypertext Preprocessor (*.php)|Hypertext Mark-up Language (*.html)|Cascading Style Sheets (*.css)" )
    If $Save2 <> ".txt" Then $Save2 &=".txt"
    FileWrite($Save2, (GUICtrlRead($Input1)))

    ;per "X" beenden
    Case $GUI_EVENT_CLOSE
    Exit

    ;per Menü-Item "Schließen" beenden
    Case $Close
    Exit

    ;per "Beenden" im Tray beenden
    Case $Close2
    Exit

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

    EndSwitch
    WEnd

    [/autoit]

    was muss anderes sein damit er denn Text anzeigt weil er zeigt ja jetzt was an aba nicht denn text sonder eine 0

    Einmal editiert, zuletzt von König Mickey (23. Oktober 2007 um 16:34)

  • 1. Ich habe schon über all gesucht und nichts passendes gefunden für diesen Thema. ;)

    2. Ich komme schon selber drauf erst die Such Funktion zu Nutzen.

    3. Ich bekomme es einfach nicht hin, ich habe schon so viel ausprobiert aber nichts klappt.

    Weiß keiner wie man es schreibt, so das wenn man eine .txt öffnet das dann der inhalt in das Edit erscheint, das wäre echt nett, bitte.

  • @m3hm3t deinen letzten satz habe ich nicht so ganz verstanden. meinst du das wenn man eine .txt datei öffnte der ganz inhalt in die edit geschrieben wird oda was??? (edit = editbox in fenster) ;)

  • Ja.
    Ich meine halt damit wenn ich ein textdokument öffne das der inhalt (das was im dokument steht) in der edit box anzeigt bzw. reigeschrieben wird.

  • Juhu :klatschen: ich habe es geschaft so das er es liest (von der txt), und er es dann in die edit box schreibt.
    Das problem ist nur noch wie mache ich es das er nicht alles in einer zeile schreibt?

    danke schon mal im voraus!

    Hier der Code:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    GUICreate("File open", 300, 200)
    $menu = GUICtrlCreateMenu("Datei")
    $item = GUICtrlCreateMenuItem("Öffnen...", $menu)
    $edit = GUICtrlCreateEdit("", 10, 10, 280, 160)
    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()

    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Case $msg = $item
    $file = FileOpenDialog("Öffnen...", @DesktopDir, "Textdokument (*.txt)")
    $read = FileRead($file)
    GUICtrlSetData($edit, $read)
    EndSelect

    WEnd

    [/autoit]

    4 Mal editiert, zuletzt von m3hm3t (25. Oktober 2007 um 17:13)