Borje Posted October 4, 2022 Posted October 4, 2022 (edited) Hello When I start this very simple editor I want it to read the file test.txt as default. But how to do it in a simple way? expandcollapse popup;includes #include <GUIConstants.au3> #include <File.au3> ;declaring variables $OpenedFilePath = "no file" $OpenedFile = "no file" $TextEditor = GUICreate("Much Simple Text Editor", 300, 250) ;Creates (Hidden) GUI which will be 600 by 600 $FileMenu = GUICtrlCreateMenu("File") ;Creates the File menu $OpenFile = GUICtrlCreateMenuItem("Open...", $FileMenu) ;Creates Open File menu item $SaveFile = GUICtrlCreateMenuItem("Save", $FileMenu) ;Creates Save File menu item $PrintFile = GUICtrlCreateMenuItem("Print", $FileMenu) ;Creates Print File menu item $EditControl = GUICtrlCreateEdit("", 0, 0, 600, 600) ;Creates Edit Control GUISetState(@SW_SHOW) ;Shows the GUI While 1 ;Initiates While loop $msg = GUIGetMsg() ;Checks if any GUI events have occured Switch $msg ;Initiates the Switch Case $GUI_EVENT_CLOSE ;Checks if $msg = $GUI_EVENT CLOSE: Checks if the user pressed the Close button If $OpenedFilePath <> "no file" Then ;Checks if $OpenedFilePath doesn't equal the string "no file" If GUICtrlRead($EditControl) <> FileRead($OpenedFile) Then ;Checks if the text in the Edit Control doesn't equal the text in the opened file $SaveChangesBox = MsgBox(3, "Save File?", "Would you like to keep unsaved changes to the file you were editing?") ;Creates a dialog with Yes, No and Cancel buttons If $SaveChangesBox = 6 Then ;Checks if the user pressed Yes in the Unsaved Changes box FileDelete($OpenedFilePath) ;Deletes the Opened File $OpenedFile = FileOpen($OpenedFilePath, 0 + 2) ;Opens and clears the file for reading/writing FileWrite($OpenedFile, GUICtrlRead($EditControl)) ;Writes the text in the Edit Control to the opened text file Exit ;Exits the script ElseIf $SaveChangesBox = 7 Then;Checks if the user pressed No in the Unsaved Changes box Exit ;Exits the script EndIf ;Ends the If statement Else ;Executes the following code if the If/Elseif statement isn't true Exit ;Exits the script EndIf ;Ends the If statement Else ;Executes the following code if the If/Elseif statement isn't true Exit ;Exits the script EndIf ;Ends the If statement Case $PrintFile ;Checks if $msg = $PrintFile: Checks if the user selected the Print File GUI Control $PrintFileFunction = _FilePrint($OpenedFilePath) ;Prints the text file $OpenedFilePath If $PrintFileFunction Then ;Executes the following code if $PrintFileFunction = 1 MsgBox(0, "Print", "The file was printed.") ;Creates a message box with an OK button stating that $OpenedFilePath was printed Else ;Executes the following code if the If/Elseif function was not true MsgBox(0, "Print Error", "The file was not printed.") ;Creates an error message box with an OK button stating that $OpenedFilePath was printed EndIf ;Ends the If statement Case $OpenFile ;Checks if $msg = $OpenFile: Checks if the user selected the "Open File" GUI Control $OpenFileDialog = FileOpenDialog("Load Text File", "", "Text Files (*.txt)") ;Creates a File Open Dialog in which the title is "Load Text File", the Initial Directory is the Desktop, and the Filter is *.txt files If FileExists($OpenFileDialog) Then ;Executes the following code if the file path $OpenFileDialog exists $OpenedFilePath = $OpenFileDialog ;makes $OpenedFilePath = $OpenFileDialog $PreviousFileRead = FileRead($OpenedFilePath) ;Reads the text from $OpenedFilePath FileDelete($OpenedFilePath) ;Deletes the Opened File GUICtrlSetData($EditControl, $PreviousFileRead) ;Sets the Edit Control to have the same text as the previous read of the file $OpenedFile = FileOpen($OpenedFilePath, 0 + 2) ;Opens and clears the text file for reading/writing FileWrite($OpenedFile, $PreviousFileRead) ;Writes the value of $PreviousFileRead to the text file $OpenedFile EndIf ;Ends the If statement Case $SaveFile ;Checks if $msg = $OpenFile: Checks if the user selected the "Save File" GUI Control If $OpenedFilePath = "no file" Then ;Executes the following code if $OpenedFilePath = the string "no file" $NewDialog = FileSaveDialog("New File", "", "Text Files (*.txt)") ;Creates a File Save dialog in which the title is "New File", the initial directory is the Desktop, and the file filter is *.txt If $NewDialog <> "" Then ;Executes the following code if $NewDialog doesn't equal the string "" $OpenedFilePath = $NewDialog & ".txt" ;makes $OpenedFilePath equal $NewDialog with ".txt" appended to the end $OpenedFile = FileOpen($OpenedFilePath, 0 + 2) ;Opens and clears the text file for reading/writing FileWrite($OpenedFile, GUICtrlRead($EditControl)) ;Writes the text in the Edit Control to $OpenedFile EndIf ;Ends the If statement Else ;Executes the following code if the If/Elseif statement isn't true FileDelete($OpenedFilePath) ;Deletes the Opened File $OpenedFile = FileOpen($OpenedFilePath, 0 + 2) ;Opens and clears the text files for reading/writing FileWrite($OpenedFilePath, GUICtrlRead($EditControl)) ;Writes the text in the Edit Control to $OpenedFilePath EndIf ;Ends the If statement EndSwitch ;Ends the Switch statement WEnd ;Ends the While loop Edited October 4, 2022 by Borje
Subz Posted October 4, 2022 Posted October 4, 2022 (edited) Do you mean when using FileOpenDialog $OpenFileDialog = FileOpenDialog("Load Text File", "", "Text Files (*.txt)", 0,"test.txt") Or did you want the edit control to display the test.txt by default $EditControl = GUICtrlCreateEdit(FileRead("test.txt"), 0, 0, 600, 600) ;Creates Edit Control Edited October 4, 2022 by Subz
Borje Posted October 4, 2022 Author Posted October 4, 2022 Thanks Subz want to read the edit control to display the test.txt by default $EditControl = GUICtrlCreateEdit(FileRead("test.txt"), 0, 0, 600, 600) ;Creates Edit Control and it works ok.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now