Jump to content

Remove edit control text limit


Recommended Posts

Hello Everyone.  I had a question I wanted to ask.  I have a script I wrote which makes copying udfs/scripts which contained in script blocks on the web (you know, kind of like this site) locally to my machine by copying/pasting the contents of the udf/script into a gui edit control.  However, I have noticed that, for udfs/scripts that are super long, I am unable to paste the entire snippet into the edit control: it gets cut off after a certain number of characters.  Is there a way to remove this limitation?  Thanks in advance.

My script:

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Res_SaveSource=y
#AutoIt3Wrapper_Res_Language=1033
#AutoIt3Wrapper_Res_requestedExecutionLevel=requireAdministrator
#AutoIt3Wrapper_Add_Constants=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
; *** Start added by AutoIt3Wrapper ***
#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
; *** End added by AutoIt3Wrapper ***
#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.15.0 (Beta)
 Author:         myName

 Script Function:
    Template AutoIt script.

#ce ----------------------------------------------------------------------------

; Script Start - Add your code below here
#include <Constants.au3>
#include <Zip.au3>
#include <File.au3>
#include <Array.au3>
#include <Console.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$sevfile = ""
If Not FileExists("C:\Program Files\7-Zip\7z.exe") Then
    If Not FileExists("C:\Program Files (x86)\7-Zip\7z.exe") Then
        DirCreate(@AppDataDir & "\7ziptemp")
        $down = InetGet("http://d.7-zip.org/a/7za920.zip", @AppDataDir & "\7zip.zip")
        InetClose($down)
        _Zip_UnzipAll(@AppDataDir & "\7zip.zip", @AppDataDir & "\7ziptemp")
        $sevfile = @AppDataDir & "\7ziptemp\7za.exe"
    Else
        $sevfile = "C:\Program Files (x86)\7-Zip\7z.exe"
    EndIf
Else
    $sevfile = "C:\Program Files\7-Zip\7z.exe"
EndIf
$comfile = _GetFilename($sevfile) & "." & _GetFilenameExt($sevfile)
Cout("")
While 1
    Do
        Cout("Do you want to process a [f]ile or [d]irectory?" & @CRLF)
        $selec = Getch()
    Until $selec = "f" Or $selec = "d"
    If $selec = "d" Then
        $thefolder = FileSelectFolder("Select the folder", "")
        If $thefolder = "" Or $thefolder = Null Then
            ExitLoop
        EndIf

        $allfiles = _FileListToArrayRec($thefolder, "*", $FLTAR_FILES, $FLTAR_RECUR)
        For $i = 1 To $allfiles[0] Step 1
            Cout("Copying " & _GetFilename($thefolder & "\" & $allfiles[$i]) & "." & _GetFilenameExt($thefolder & "\" & $allfiles[$i]) & @CRLF)
            FileCopy($thefolder & "\" & $allfiles[$i], @ProgramFilesDir & "\AutoIt3\Include\" & _GetFilename($thefolder & "\" & $allfiles[$i]) & "." & _GetFilenameExt($thefolder & "\" & $allfiles[$i]), 1)
            FileCopy($thefolder & "\" & $allfiles[$i], @ProgramFilesDir & "\AutoIt3\Beta\Include\" & _GetFilename($thefolder & "\" & $allfiles[$i]) & "." & _GetFilenameExt($thefolder & "\" & $allfiles[$i]), 1)
        Next

    Else
        $file = FileOpenDialog("Select the udf or the archive that contains it.", "", "AutoIT and Archive (*.au3;*.zip;*.rar;*.7z;*.dll)", 7)
        $selectedfiles = StringSplit($file, "|")
        If @error Then
            SetError(0)
            If _GetFilenameExt($file) = "au3" Or _GetFilenameExt($file) = "dll" Then
                Cout("Copying " & _GetFilename($file) & "." & _GetFilenameExt($file) & @CRLF)
                FileCopy($file, @ProgramFilesDir & "\AutoIt3\Include\" & _GetFilename($file) & "." & _GetFilenameExt($file), 1)
                FileCopy($file, @ProgramFilesDir & "\AutoIt3\Beta\Include\" & _GetFilename($file) & "." & _GetFilenameExt($file), 1)
            ElseIf _GetFilenameExt($file) = "zip" Then
                $folder = _GetFilename($file)
                DirCreate(@DesktopDir & "\" & $folder)
                Cout("Unzipping " & _GetFilename($file) & "." & _GetFilenameExt($file) & @CRLF)
                _Zip_UnzipAll($file, @DesktopDir & "\" & $folder, 4)
                $array = _FileListToArrayRec(@DesktopDir & "\" & $folder, "*", $FLTAR_FILES, $FLTAR_RECUR)
                For $i = 1 To $array[0] Step 1
                    Cout("Copying " & _GetFilename(@DesktopDir & "\" & $folder & "\" & $array[$i]) & "." & _GetFilenameExt(@DesktopDir & "\" & $folder & "\" & $array[$i]) & @CRLF)
                    FileCopy(@DesktopDir & "\" & $folder & "\" & $array[$i], @ProgramFilesDir & "\AutoIt3\Include\" & _GetFilename(@DesktopDir & "\" & $folder & "\" & $array[$i]) & "." & _GetFilenameExt(@DesktopDir & "\" & $folder & "\" & $array[$i]), 1)
                    FileCopy(@DesktopDir & "\" & $folder & "\" & $array[$i], @ProgramFilesDir & "\AutoIt3\Beta\Include\" & _GetFilename(@DesktopDir & "\" & $folder & "\" & $array[$i]) & "." & _GetFilenameExt(@DesktopDir & "\" & $folder & "\" & $array[$i]), 1)
                Next

            ElseIf _GetFilenameExt($file) = "rar" Then
                $folder2 = _GetFilename($file)
                DirCreate(@DesktopDir & "\" & $folder2)
                Cout("Unzipping " & _GetFilename($file) & "." & _GetFilenameExt($file) & @CRLF)
                RunWait(@ComSpec & ' /c ' & $comfile & ' x "' & $file & '" -o"' & @DesktopDir & '\' & $folder2 & '\"', _GetFilenamePath($sevfile))
                $array2 = _FileListToArrayRec(@DesktopDir & "\" & $folder2, "*", $FLTAR_FILES, $FLTAR_RECUR)
                For $i = 1 To $array2[0] Step 1
                    Cout("Copying " & _GetFilename(@DesktopDir & "\" & $folder2 & "\" & $array2[$i]) & "." & _GetFilenameExt(@DesktopDir & "\" & $folder2 & "\" & $array2[$i]) & @CRLF)
                    FileCopy(@DesktopDir & "\" & $folder2 & "\" & $array2[$i], @ProgramFilesDir & "\AutoIt3\Include\" & _GetFilename(@DesktopDir & "\" & $folder2 & "\" & $array2[$i]) & "." & _GetFilenameExt(@DesktopDir & "\" & $folder2 & "\" & $array2[$i]), 1)
                    FileCopy(@DesktopDir & "\" & $folder2 & "\" & $array2[$i], @ProgramFilesDir & "\AutoIt3\Beta\Include\" & _GetFilename(@DesktopDir & "\" & $folder2 & "\" & $array2[$i]) & "." & _GetFilenameExt(@DesktopDir & "\" & $folder2 & "\" & $array2[$i]), 1)
                Next
            ElseIf _GetFilenameExt($file) = "7z" Then
                $folder3 = _GetFilename($file)
                DirCreate(@DesktopDir & "\" & $folder3)
                Cout("Unzipping " & _GetFilename($file) & "." & _GetFilenameExt($file) & @CRLF)
                RunWait(@ComSpec & ' /c ' & $comfile & ' x "' & $file & '" -o"' & @DesktopDir & '\' & $folder3 & '\"', _GetFilenamePath($sevfile))
                $array3 = _FileListToArrayRec(@DesktopDir & "\" & $folder3, "*", $FLTAR_FILES, $FLTAR_RECUR)
                For $i = 1 To $array3[0] Step 1
                    Cout("Copying " & _GetFilename(@DesktopDir & "\" & $folder3 & "\" & $array3[$i]) & "." & _GetFilenameExt(@DesktopDir & "\" & $folder3 & "\" & $array3[$i]) & @CRLF)
                    FileCopy(@DesktopDir & "\" & $folder3 & "\" & $array3[$i], @ProgramFilesDir & "\AutoIt3\Include\" & _GetFilename(@DesktopDir & "\" & $folder3 & "\" & $array3[$i]) & "." & _GetFilenameExt(@DesktopDir & "\" & $folder3 & "\" & $array3[$i]), 1)
                    FileCopy(@DesktopDir & "\" & $folder3 & "\" & $array3[$i], @ProgramFilesDir & "\AutoIt3\Beta\Include\" & _GetFilename(@DesktopDir & "\" & $folder3 & "\" & $array3[$i]) & "." & _GetFilenameExt(@DesktopDir & "\" & $folder3 & "\" & $array3[$i]), 1)
                Next
            Else
                Cout("Unknown file type.  Skipping over " & $file & @CRLF)
            EndIf
        Else
            For $t = 2 To $selectedfiles[0] Step 1
                $file = $selectedfiles[1] & "\" & $selectedfiles[$t]
                If _GetFilenameExt($file) = "au3" Or _GetFilenameExt($file) = "dll" Then
                    Cout("Copying " & _GetFilename($file) & "." & _GetFilenameExt($file) & @CRLF)
                    FileCopy($file, @ProgramFilesDir & "\AutoIt3\Include\" & _GetFilename($file) & "." & _GetFilenameExt($file), 1)
                    FileCopy($file, @ProgramFilesDir & "\AutoIt3\Beta\Include\" & _GetFilename($file) & "." & _GetFilenameExt($file), 1)
                ElseIf _GetFilenameExt($file) = "zip" Then
                    $folder = _GetFilename($file)
                    DirCreate(@DesktopDir & "\" & $folder)
                    Cout("Unzipping " & _GetFilename($file) & "." & _GetFilenameExt($file) & @CRLF)
                    _Zip_UnzipAll($file, @DesktopDir & "\" & $folder, 4)
                    $array = _FileListToArrayRec(@DesktopDir & "\" & $folder, "*", $FLTAR_FILES, $FLTAR_RECUR)
                    For $i = 1 To $array[0] Step 1
                        Cout("Copying " & _GetFilename(@DesktopDir & "\" & $folder & "\" & $array[$i]) & "." & _GetFilenameExt(@DesktopDir & "\" & $folder & "\" & $array[$i]) & @CRLF)
                        FileCopy(@DesktopDir & "\" & $folder & "\" & $array[$i], @ProgramFilesDir & "\AutoIt3\Include\" & _GetFilename(@DesktopDir & "\" & $folder & "\" & $array[$i]) & "." & _GetFilenameExt(@DesktopDir & "\" & $folder & "\" & $array[$i]), 1)
                        FileCopy(@DesktopDir & "\" & $folder & "\" & $array[$i], @ProgramFilesDir & "\AutoIt3\Beta\Include\" & _GetFilename(@DesktopDir & "\" & $folder & "\" & $array[$i]) & "." & _GetFilenameExt(@DesktopDir & "\" & $folder & "\" & $array[$i]), 1)
                    Next

                ElseIf _GetFilenameExt($file) = "rar" Then
                    $folder2 = _GetFilename($file)
                    DirCreate(@DesktopDir & "\" & $folder2)
                    Cout("Unzipping " & _GetFilename($file) & "." & _GetFilenameExt($file) & @CRLF)
                    RunWait(@ComSpec & ' /c ' & $comfile & ' x "' & $file & '" -o"' & @DesktopDir & '\' & $folder2 & '\"', _GetFilenamePath($sevfile))
                    $array2 = _FileListToArrayRec(@DesktopDir & "\" & $folder2, "*", $FLTAR_FILES, $FLTAR_RECUR)
                    For $i = 1 To $array2[0] Step 1
                        Cout("Copying " & _GetFilename(@DesktopDir & "\" & $folder2 & "\" & $array2[$i]) & "." & _GetFilenameExt(@DesktopDir & "\" & $folder2 & "\" & $array2[$i]) & @CRLF)
                        FileCopy(@DesktopDir & "\" & $folder2 & "\" & $array2[$i], @ProgramFilesDir & "\AutoIt3\Include\" & _GetFilename(@DesktopDir & "\" & $folder2 & "\" & $array2[$i]) & "." & _GetFilenameExt(@DesktopDir & "\" & $folder2 & "\" & $array2[$i]), 1)
                        FileCopy(@DesktopDir & "\" & $folder2 & "\" & $array2[$i], @ProgramFilesDir & "\AutoIt3\Beta\Include\" & _GetFilename(@DesktopDir & "\" & $folder2 & "\" & $array2[$i]) & "." & _GetFilenameExt(@DesktopDir & "\" & $folder2 & "\" & $array2[$i]), 1)
                    Next
                ElseIf _GetFilenameExt($file) = "7z" Then
                    $folder3 = _GetFilename($file)
                    DirCreate(@DesktopDir & "\" & $folder3)
                    Cout("Unzipping " & _GetFilename($file) & "." & _GetFilenameExt($file) & @CRLF)
                    RunWait(@ComSpec & ' /c ' & $comfile & ' x "' & $file & '" -o"' & @DesktopDir & '\' & $folder3 & '\"', _GetFilenamePath($sevfile))
                    $array3 = _FileListToArrayRec(@DesktopDir & "\" & $folder3, "*", $FLTAR_FILES, $FLTAR_RECUR)
                    For $i = 1 To $array3[0] Step 1
                        Cout("Copying " & _GetFilename(@DesktopDir & "\" & $folder3 & "\" & $array3[$i]) & "." & _GetFilenameExt(@DesktopDir & "\" & $folder3 & "\" & $array3[$i]) & @CRLF)
                        FileCopy(@DesktopDir & "\" & $folder3 & "\" & $array3[$i], @ProgramFilesDir & "\AutoIt3\Include\" & _GetFilename(@DesktopDir & "\" & $folder3 & "\" & $array3[$i]) & "." & _GetFilenameExt(@DesktopDir & "\" & $folder3 & "\" & $array3[$i]), 1)
                        FileCopy(@DesktopDir & "\" & $folder3 & "\" & $array3[$i], @ProgramFilesDir & "\AutoIt3\Beta\Include\" & _GetFilename(@DesktopDir & "\" & $folder3 & "\" & $array3[$i]) & "." & _GetFilenameExt(@DesktopDir & "\" & $folder3 & "\" & $array3[$i]), 1)
                    Next
                Else
                    Cout("Unknown file type.  Leaving in folder." & @CRLF)
                EndIf
            Next
        EndIf
    EndIf



    Do
        Cout("Do you have anymore udfs to add?" & @CRLF & "[Y]es, [N]o?" & @CRLF)
        $resp = Getch()
        Cout(@CRLF)
    Until $resp = "y" Or $resp = "n"
    If $resp = "y" Then
        ContinueLoop
    Else
        ExitLoop
    EndIf

WEnd




Func _GetFilename($sFilePath)
    Local $oWMIService = ObjGet("winmgmts:{impersonationLevel = impersonate}!\\" & "." & "\root\cimv2")
    Local $oColFiles = $oWMIService.ExecQuery("Select * From CIM_Datafile Where Name = '" & StringReplace($sFilePath, "\", "\\") & "'")
    If IsObj($oColFiles) Then
        For $oObjectFile In $oColFiles
            Return $oObjectFile.FileName
        Next
    EndIf
    Return SetError(1, 1, 0)
EndFunc   ;==>_GetFilename

Func _GetFilenameExt($sFilePath)
    Local $oWMIService = ObjGet("winmgmts:{impersonationLevel = impersonate}!\\" & "." & "\root\cimv2")
    Local $oColFiles = $oWMIService.ExecQuery("Select * From CIM_Datafile Where Name = '" & StringReplace($sFilePath, "\", "\\") & "'")
    If IsObj($oColFiles) Then
        For $oObjectFile In $oColFiles
            Return $oObjectFile.Extension
        Next
    EndIf
    Return SetError(1, 1, 0)
EndFunc   ;==>_GetFilenameExt

Func _GetFilenameInt($sFilePath)
    Local $oWMIService = ObjGet("winmgmts:{impersonationLevel = impersonate}!\\" & "." & "\root\cimv2")
    Local $oColFiles = $oWMIService.ExecQuery("Select * From CIM_Datafile Where Name = '" & StringReplace($sFilePath, "\", "\\") & "'")
    If IsObj($oColFiles) Then
        For $oObjectFile In $oColFiles
            Return $oObjectFile.Name
        Next
    EndIf
    Return SetError(1, 1, 0)
EndFunc   ;==>_GetFilenameInt

Func _GetFilenameDrive($sFilePath)
    Local $oWMIService = ObjGet("winmgmts:{impersonationLevel = impersonate}!\\" & "." & "\root\cimv2")
    Local $oColFiles = $oWMIService.ExecQuery("Select * From CIM_Datafile Where Name = '" & StringReplace($sFilePath, "\", "\\") & "'")
    If IsObj($oColFiles) Then
        For $oObjectFile In $oColFiles
            Return StringUpper($oObjectFile.Drive)
        Next
    EndIf
    Return SetError(1, 1, 0)
EndFunc   ;==>_GetFilenameDrive

Func _GetFilenamePath($sFilePath)
    Local $oWMIService = ObjGet("winmgmts:{impersonationLevel = impersonate}!\\" & "." & "\root\cimv2")
    Local $oColFiles = $oWMIService.ExecQuery("Select * From CIM_Datafile Where Name = '" & StringReplace($sFilePath, "\", "\\") & "'")
    If IsObj($oColFiles) Then
        For $oObjectFile In $oColFiles
            Return $oObjectFile.Path
        Next
    EndIf
    Return SetError(1, 1, 0)
EndFunc   ;==>_GetFilenamePath
Func IsFile($sFilePath)
    Return Number(FileExists($sFilePath) And StringInStr(FileGetAttrib($sFilePath), "D", 2, 1) = 0)
EndFunc   ;==>IsFile

 

Link to comment
Share on other sites

  • Moderators

MattHiggs,

_GUICtrlEdit_SetLimitText.

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

36 minutes ago, MattHiggs said:

However, I have noticed that, for udfs/scripts that are super long, I am unable to paste the entire snippet into the edit control: it gets cut off after a certain number of characters.  Is there a way to remove this limitation?  Thanks in advance.

Here is an example with the function _GUICtrlEdit_SetLimitText, which @Melba23 has already mentioned :

#include <GUIConstantsEx.au3>
#include <GuiEdit.au3>

_Example()

Func _Example()
    Local $idEdit, $sRead , $sFilename

    ; Example : Read GDIPlus.au3 and show the code in an Edit control :
    $sFilename = StringRegExpReplace(@AutoItExe, "(?i)AutoIt3.exe$", "") & "Include\GDIPlus.au3"
    $sRead     = FileRead($sFilename)

    GUICreate("Test : Huge Edit Control", 1200, 600)
    $idEdit = GUICtrlCreateEdit("", 2, 2, 1194, 568)

    ; Gets the current text limit for an edit control
    ConsoleWrite('1. _GUICtrlEdit_GetLimitText($idEdit) = ' & _GUICtrlEdit_GetLimitText($idEdit) & @CRLF)
    
    ; Sets a new text limit
    _GUICtrlEdit_SetLimitText($idEdit, 1500000)
    ConsoleWrite('2. _GUICtrlEdit_GetLimitText($idEdit) = ' & _GUICtrlEdit_GetLimitText($idEdit) & @CRLF)

    GUISetState(@SW_SHOW)

    _GUICtrlEdit_AppendText($idEdit, $sRead)

    ; Loop until the user exits.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
EndFunc   ;==>_Example

 

Musashi-C64.png

"In the beginning the Universe was created. This has made a lot of people very angry and been widely regarded as a bad move."

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...