1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. BugFix

Beiträge von BugFix

  • autoBert feiert

    • BugFix
    • 13. November 2011 um 13:40

    Auch von mir die Besten Wünsche.

  • Eure Kommentare zu meiner Funktion

    • BugFix
    • 8. November 2011 um 19:58

    If-Then-Else ist das langsamste Statement, Switch-Case das schnellste.
    Für deine Anforderung kannst du aber kein Switch verwenden, da du unterschiedliche Abfragen tätigst. Verwende stattdessen Select-Case.

    Edit: Da war wer schneller. :D

  • ByRef auf Variablen/Arrays ohne Funktion?

    • BugFix
    • 8. November 2011 um 14:38
    Zitat von jwka

    Sind "Assoziative Arrays" (Arrays mit "Strings" als Indices)in der Diskussion?


    Ob die Dev's in dieser Richtung überlegen, weiß ich nicht.
    Da viele unserer Forennuntzer am Anfang mit Arrays wenig am Hut haben, hatte ich mal eine Kombination aus Array und Struktur erstellt, die es ermöglicht über den String auf die Daten zuzugreifen. Das ist aber für größere Datenmengen etwas zeitlastig, da das Lesen/Schreiben in Strukturen doch länger dauert als bei einem direkten Arrayzugriff. Andererseits lassen sich hiermit (im Gegensatz zu den anderen existierenden Modellen) einem Schlüssel mehrere Werte zuordnen, also die Abbildung eines 2D-Arrays mit mehreren Spalten.

  • Tipp: Command-line Reference [ OS: Vista und höher ]

    • BugFix
    • 7. November 2011 um 09:27

    So nach und nach verschwinden aus der Windows-Systemsteuerung immer mehr Funktionen.
    Z.B. ist es in der Datenträgerverwaltung seit Vista nicht mehr möglich mit FAT32 zu formatieren. Ausschließlich die M$-eigenen Formate NTFS und exFAT werden angeboten.

    Wer also irgendetwas vermißt, sollte mal einen Blick in die Command-line Reference werfen. Dort wird man meist fündig.
    So ist z.B. die angesprochene Formatierung mit FAT32 (und sogar mit FAT) über "format" in der Kommandozeile möglich.
    Eines sollte man natürlich beachten:
    Mit den Kommandozeilen Befehlen kann man direkt in den "Systeminnereien" hantieren und Befehle werden als gewollt interpretiert. Man muß also wissen, was man dort tut (z.B. beim Arbeiten mit Partitionen) um nicht eventuell sein System lahmzulegen.

  • Farben

    • BugFix
    • 6. November 2011 um 20:34
    Zitat von AutoItfreak

    kann ich net auch mit der dezimalzahl des einfacher machen


    Das scheitert schlicht und einfach schon daran, dass die Farbübergänge fließend sind und eine ganz klare Unterteilung, wie du dir das vorstellst, somit nicht möglich ist.
    Falls du weißt, welche Farben zu erwarten sind, könntest du im Vorfeld eine Zuordung erstellen.

  • 2D - Array und Auslesen

    • BugFix
    • 6. November 2011 um 20:29

    Wenn du eine zufällige Frage stellen willst gehst du ja so vor:
    - Index ermitteln:
    $index = Random(0, Ubound($array)-1, 1)
    - Frage aus Array[$index][0] lesen und in der GUI anzeigen
    - Antwort mit Array[$index][1] vergleichen.

    Sollte doch nicht so schwer werden, das jetzt in Code zu packen. ;)

  • GuictrlRead Inhalt Abfrage

    • BugFix
    • 6. November 2011 um 17:58

    " = not " :wacko:
    Das geht daneben, du mußt einfach nur " <> " verwenden. :thumbup:

  • Problem mit Zeichenketten die aus langen Zahlen bestehen

    • BugFix
    • 6. November 2011 um 13:35
    Zitat von uuchip

    Aber auch die funktioniert nur richtig wenn man die ganz großen Zahlen als string eingibt.


    :D Genau deshalb steht das auch so in der Funktionsbeschreibung.

  • Problem mit Zeichenketten die aus langen Zahlen bestehen

    • BugFix
    • 6. November 2011 um 12:16
    Zitat von uuchip

    ich dachte string erzwingt eine Umwandlung.


    Ja, aber natürlich von dem (als Exponential-Ausdruck) dargestellten Zahlenwert.

  • Problem mit Zeichenketten die aus langen Zahlen bestehen

    • BugFix
    • 6. November 2011 um 11:52

    Na überlegt doch mal, welche Zahlen maximal in AutoIt angezeigt werden. (Integer) :whistling:
    Wer es ohne Überlegen testen will: Einfach in einer Schleife mit Ziffer 9 beginnen (ConsoleWrite) und die Zahl jeweils um eine 9 ergänzen.
    Ich glaube, dann wird klar warum die Stringlänge nicht stimmen kann.

  • Zufallsgenerator: es werden nicht alle arrays 1x ausgegeben

    • BugFix
    • 3. November 2011 um 18:59

    Um alle Zahlen eines Bereiches zufällig und nicht doppelt auszugeben, kannst du folgende Funktion nutzen:

    Spoiler anzeigen
    [autoit]

    ;==============================================================================
    ; Gibt eine Anzahl Zufallszahlen ohne Doppel als String oder Array zurück
    ; Bereich von - bis festlegbar (positiv Integer)
    ; mit -1 für Anzahl werden alle Zahlen des Bereichs in zufälliger Reihenfolge
    ; ausgegeben
    ;==============================================================================
    Func _RandomExt($iBis, $iVon=1, $iAnzahl=-1, $array=0)
    Local $count = $iBis -$iVon +1
    If $iAnzahl = -1 Then $iAnzahl = $count
    Local $aValue[$count], $start = $iVon, $sOut = '', $random
    For $i = 0 To $count -1
    $aValue[$i] = $start
    $start += 1
    Next
    For $i = 0 To $iAnzahl -1
    $random = Random(0, $count -1 -$i, 1)
    $sOut &= $aValue[$random] & ','
    $aValue[$random] = $aValue[$count -1 -$i]
    Next
    $sOut = StringTrimRight($sOut, 1)
    If $array Then Return StringSplit($sOut, ',', 2)
    Return $sOut
    EndFunc ;==>_RandomExt

    [/autoit]
  • Windows 8 fürn Alltag?

    • BugFix
    • 2. November 2011 um 19:39

    Also ich finde es ziemlich unverschämt, wenn GTASpiders Thread gehijackt wird um hier Glaubenskriege auszufechten! :cursing:

    Aus diesem Grund lösche ich alle Posts, die nicht direkt Bezug zu GTA's Frage haben.

    Wer hier noch posten möchte: Die Frage heißt - Wie sind eure Erfahrungen mit Win8.

  • Checkbox ausführen

    • BugFix
    • 1. November 2011 um 10:06
    Zitat von skybor1994

    Wie/Wo muss ich die anderen Checkboxen abfragen?

    z.B. so:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    GUICreate('Test')
    $cb1 = GUICtrlCreateCheckbox('CB 1', 10, 10, 40)
    $cb2 = GUICtrlCreateCheckbox('CB 2', 10, 30, 40)
    $cb3 = GUICtrlCreateCheckbox('CB 3', 10, 50, 40)
    GUISetState()

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

    While 1
    Switch GUIGetMsg()
    Case -3
    Exit
    Case $cb1
    If BitAND(GUICtrlRead($cb1), $GUI_CHECKED) Then
    MsgBox(0, 'Klick', 'Checkbox 1 checked')
    Else
    MsgBox(0, 'Klick', 'Checkbox 1 unchecked')
    EndIf
    Case $cb2
    If BitAND(GUICtrlRead($cb2), $GUI_CHECKED) Then
    MsgBox(0, 'Klick', 'Checkbox 2 checked')
    Else
    MsgBox(0, 'Klick', 'Checkbox 2 unchecked')
    EndIf
    Case $cb3
    If BitAND(GUICtrlRead($cb3), $GUI_CHECKED) Then
    MsgBox(0, 'Klick', 'Checkbox 3 checked')
    Else
    MsgBox(0, 'Klick', 'Checkbox 3 unchecked')
    EndIf
    EndSwitch
    WEnd

    [/autoit]


    Wobei es bei mehrfach auftretenden Aktionen sinnvoll ist, diese in eine Funktion auszulagern:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    $gui = GUICreate('Test')
    $cb1 = GUICtrlCreateCheckbox('CB 1', 10, 10, 40)
    $cb2 = GUICtrlCreateCheckbox('CB 2', 10, 30, 40)
    $cb3 = GUICtrlCreateCheckbox('CB 3', 10, 50, 40)
    GUISetState()

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

    While 1
    Switch GUIGetMsg()
    Case -3
    Exit
    Case $cb1
    _CheckCB($cb1)
    Case $cb2
    _CheckCB($cb2)
    Case $cb3
    _CheckCB($cb3)
    EndSwitch
    WEnd

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

    Func _CheckCB($iID)
    If BitAND(GUICtrlRead($iID), $GUI_CHECKED) Then
    MsgBox(0, 'Klick', 'Checkbox ' & ControlGetText($gui, '', $iID) & ' checked')
    Else
    MsgBox(0, 'Klick', 'Checkbox ' & ControlGetText($gui, '', $iID) & ' unchecked')
    EndIf
    EndFunc

    [/autoit]
  • Arrayeinträge bearbeitbar in Gui darstellen

    • BugFix
    • 1. November 2011 um 09:38

    Eigentlich ist es ja fast beleidigend, dass ihr im EN-Forum sucht, wenn auch unser Forum Lösungen bereithält. :D
    Guckst du

  • SciTE - Markierten Bereich paarig einfassen + Arraydeklaration mit Wertzuweisung und Scopeauswahl

    • BugFix
    • 29. Oktober 2011 um 18:53

    - neue Version 1.3
    - Code vereinfacht
    - auch für EN-Keyboard Layout

  • WinINet

    • BugFix
    • 29. Oktober 2011 um 10:57

    Wenn ihr lernen würdet, eure Probleme in klare Worte zu fassen, würde euch die Lösung meist selbst einfallen. :D

    Poste doch mal ein paar Zeilen aus dem Log, markiere die Zeilen, die Beachtung finden sollen und gib die Kriterien dafür an.

  • SciTE - Markierten Bereich paarig einfassen + Arraydeklaration mit Wertzuweisung und Scopeauswahl

    • BugFix
    • 28. Oktober 2011 um 15:28

    - Kleinen Bug behoben
    - Im ÜBERSCHREIB-Modus ist das Tool deaktiviert

  • SciTE - Markierten Bereich paarig einfassen + Arraydeklaration mit Wertzuweisung und Scopeauswahl

    • BugFix
    • 27. Oktober 2011 um 21:36

    Hier ein kleines Tool, dass es ermöglicht, einen markierten Bereich (auch Blockmarkierung - z.B. in Zeilen 3-6 jeweils Spalten 10-17) mit paarigen Zeichen: ( ), { }, [ ], ' ', " " einzufassen.
    Bei Blockmarkierung wird in jeder Zeile des Blocks am Beginn und Ende der Markierung das entsprechende Zeichen gesetzt.
    Steht der Cursor nach der Markierung vor der Auswahl ist das öffnende Symbol zu wählen, steht er am Ende ist das schließende Symbol zu wählen. Dass paarige Symbol wird dann entsprechend zugeordnet.
    Also:
    - Bereich markieren
    - öffnendes oder schließendes Symbol eingeben

    Dieses Tool ersetzt auch die Funktion "AutoCloseBraces.lua". Sofern ihr diese verwendet, muß sie im Lua-Startup Skript ( SciTEStartup.lua ) deaktiviert werden.

    Kopiert die Datei EdgingSelection.lua in den Pfad: "..SciTE\LUA\"
    Öffnet die SciTEStartup.lua und ergänzt sie um den Eintrag "LoadLuaFile("EdgingSelection.lua")".
    Die Datei sollte dann etwa so aussehen:

    Spoiler anzeigen
    Code
    -- TIME_STAMP   2011-10-27 20:24:06   v 0.1
    
    
    --------------------------------------------------------------------------------
    -- SciTE startup script.
    --------------------------------------------------------------------------------
    -- A table listing all loaded files.
    LoadLuaFileList = { }
    --------------------------------------------------------------------------------
    -- LoadLuaFile(file, directory)
    --
    -- Helper function for easily loading Lua files.
    --
    -- Parameters:
    --	file - The name of a Lua file to load.
    --	directory - If specified, file is looked for in that directory.  By default,
    -- 		this directory is $(SciTEDefaultHome)\Lua.
    --------------------------------------------------------------------------------
    function LoadLuaFile(file, directory)
    	if directory == nil then
    		directory = props["SciteDefaultHome"] .. "\\Lua\\"
    	end
    	table.insert(LoadLuaFileList, directory .. file)
    	dofile(directory .. file)
    end	-- LoadLuaFile()
    
    
    -- Load all the Lua files.
    LoadLuaFile("Class.lua")	-- Always load first.
    LoadLuaFile("Common.lua")	-- Always load second.
    LoadLuaFile("AutoItPixmap.lua")
    LoadLuaFile("AutoHScroll.lua")
    LoadLuaFile("AutoItAutoComplete.lua")
    LoadLuaFile("LoadSession.lua")
    LoadLuaFile("AutoItIndentFix.lua")
    LoadLuaFile("EdgeMode.lua")
    LoadLuaFile("SmartAutoCompleteHide.lua")
    LoadLuaFile("Tools.lua")
    LoadLuaFile("AutoItTools.lua")
    LoadLuaFile("AutoItGotoDefinition.lua")
    --~ LoadLuaFile("AutoCloseBraces.lua")  -- wenn diese Datei nicht verwendet wird ==> mit '--' auskommentieren oder löschen
    
    
    -- Start up the events (Calls OnStartup()).
    EventClass:BeginEvents()
    
    
    -- Erst nach Registrierung der EventClass werden eigene Dateien geladen
    LoadLuaFile("AutoStampSaveVersion.lua")  -- enthält Event: "OnBeforeSave"
    LoadLuaFile("MyDebug.lua")
    LoadLuaFile("EdgingSelection.lua")
    Alles anzeigen

    Falls ihr die Funktion zum Neuladen der Properties aktiviert habt - einmal ausführen, ansonsten Neustart SciTE.


    Edit 28.10.2011: Hab das Tool noch etwas verändert und auch umbenannt.
    - Im Überschreib-Modus ist das Tool jetzt deaktiviert
    - kleinen Bug behoben

    Edit 29.10.2011: 
    Manchmal macht man es sich unnütz schwer. ;) Da hatte ich doch glatt übersehen, dass das OnKey-Event gleich den Status für SHIFT, CTRL, ALT mitliefert, das vereinfacht natürlich den Code.
    Weiterhin habe ich es jetzt 'internationalisiert' (auch für englisches Keyboardlayout wirksam). ;)
    Die Variablengestaltung ist nun auch übersichtlicher.
    Aktuelle Version: 1.3

    Edit 30.10.2011:
    Kleine Erweiterung: Es können einzelne Dateitypen von der Funktion ausgeschlossen werden. Dazu für jede der auszuschließenden Dateitypen einen Eintrag erstellen in "SciTEUser.properties":
    "NoPairs.ext=1" (ext = Erweiterung in Kleinbuchstaben)
    Aktuelle Version: 1.4

    Edit 05.10.2012  NEU
    Ich habe folgende Funktion hinzugefügt:
    - Deklaration von Arrays mit Wertzuweisung
    dazu:
    - in jede Zeile einen Arraywert eintragen (Strings ohne Gänsefüßchen)
    - Blockauswahl dieser Zeilen
    - für Strings: Strg+Alt+S (bzw. AltGr+S)
    - für Zahlen, Variablen: Strg+Alt+A (bzw. AltGr+A)

    - Gültigkeitsbereich wird festgelegt über die Verwendung der Buchstaben "d", "g" oder "l" ( Dim, Global oder Local )
    - für Strings: "Strg+Alt+Shift+Buchstabe"
    - für Zahlen, Variablen: "Strg+Alt+Buchstabe"
    - statt "Strg+Alt" kann natürlich auch "AltGr" genutzt werden
    Aktuelle Version: 1.6

    Bsp.:

    [autoit]


    ; vorher:
    10
    20
    30
    40

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

    ; mit "Strg+Alt+d" :
    Dim $a[4] = [10,20,30,40]

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

    ; mit "Strg+Alt+Shift+L" :
    Local $a[4] = ["10","20","30","40"]

    [/autoit]


    EdgingSelection.lua (v1.6)
    Code
    -- TIME_STAMP   2012-10-06 11:31:14   v 1.6
    
    
    ----------------- EdgingSelection.LUA ------------------------------------
    --  Edge selected text with paired chars or set an empty pair           --
    --  on hit this char.                                                   --
    --  Paired chars are: " ", ' ', ( ), { }, [ ]                           --
    --  * Set edging always in multiple selected lines or in block          --
    --    selected areas (i.e. from line 3 to 8 in columns 20 to 30).       --
    --  * If caret position are left from selection hit the opening         --
    --    char, on position at the end hit the closing char.                --
    --  * It also works without selection, so you got empty pairs. The      --
    --    opening char must hit! (like AutoCloseBraces.lua)                 --
    --    Hit closing char without selection inserts only this char.        --
    --  * ! If you want to set empty pairs on multiple lines, you must      --
    --    select 0 columns (hit SHIFT+ALT + n-times DOWN) and the           --
    --    closing char must hit. Downward selection is required for this.   --
    --  * NEW!                                                              --
    --    Now you can declare arrays with assignment by this way:           --
    --    • write one value in every line (strings without quotation mark)  --
    --    • make block selection of this                                    --
    --    • declare the array with assignment by hotkey:                    --
    --      the letter determines the scope to use:                         --
    --      Letters:   D = Dim, G = Global, L = Local                       --
    --      STRG+ALT+SHIFT+(Letter) values will marked as strings in array  --
    --      STRG+ALT+(Letter)       other values (numbers, variables)       --
    --  NOTE:                                                               --
    --  * If you always use an script like 'AutoCloseBraces.lua', you       --
    --    must disable it.                                                  --
    --  * The paired mode is disabled on using OVERWRITE in editor.         --
    --  * Keycodes for english and german keyboard layout implemented.      --
    --    Set your language in variable "lang". For other languages add     --
    --    own entries in table "tCode". To get right values uncomment the   --
    --    "print"-line in function "HitKey", hit the keys with pairing      --
    --    chars and read values from console. All entries('SHIFT', 'RAW',   --
    --    'CTRL_ALT') must created, to avoid errors.                        --
    --  * To exclude some file-types from this function, needs entry for    --
    --    every file-type that should excluded in "SciTEUser.properties"    --
    --    "NoPairs.ext=1" (.ext with lower chars!).                         --
    --------------------------------------------------------------------------
    
    
    ----------------- create new EventClass, event: OnKey ------------------
    HitKey = EventClass:new(Common)
    ------------------------------------------------------------------------
    
    
    ----------------- declare vars -----------------------------------------
    -- set your language and add table with values
    local lang = 'GE' -- 'EN'                                                                   -- language identifier, used in char-table
    
    
    -- virtual keycode
    local tCode = {}
    
    
    -- german keyboard
    tCode['GE'] = {}
    tCode['GE']['SHIFT'] = { [50] = '"', [191] = "'", [56] = '(', [57] = ')' }                                        -- chars on hit SHIFT (german)
    tCode['GE']['CTRL_ALT'] = { [55] = '{', [56] = '[', [57] = ']', [48] = '}', [68] = 'd', [71] = 'g', [76] = 'l' }  -- chars on hit CTRL+ALT (german)
    tCode['GE']['CTRL_ALT_SHIFT'] = { [68] = 'd', [71] = 'g', [76] = 'l' }                                            -- chars on hit CTRL+ALT+SHIFT (declare array with strings)
    tCode['GE']['RAW'] = {}                                                                                           -- empty table required to avoid errors
    
    
    -- US/ english keyboard
    tCode['EN'] = {}
    tCode['EN']['SHIFT'] = { [48] = ')', [57] = '(', [219] = '{', [221] = '}', [222] = '"' }                          -- chars on hit SHIFT (english)
    tCode['EN']['CTRL_ALT'] = { [68] = 'd', [71] = 'g', [76] = 'l' }                                                  -- chars on hit CTRL+ALT (only keys for array declaration)
    tCode['GE']['CTRL_ALT_SHIFT'] = { [68] = 'd', [71] = 'g', [76] = 'l' }                                            -- chars on hit CTRL+ALT+SHIFT (declare array with strings)
    tCode['EN']['RAW'] = { [219] = '[', [221] = ']', [222] = "'" }                                                    -- chars hit alone (english)
    
    
    -- paired chars
    local tPairs = {}
    tPairs['Left']  = { ['('] = ')', ['{'] = '}', ['['] = ']', ['"'] = '"', ["'"] = "'", ['d'] = 'd', ['g'] = 'g', ['l'] = 'l', ['D'] = 'D', ['G'] = 'G', ['L'] = 'L' }       -- left/opening chars + trigger array declaration
    tPairs['Right'] = { [')'] = '(', ['}'] = '{', [']'] = '[', ['"'] = '"', ["'"] = "'", ['d'] = 'd', ['g'] = 'g', ['l'] = 'l', ['D'] = 'D', ['G'] = 'G', ['L'] = 'L' }       -- right/closing chars + trigger array declaration
    
    
    -- insert key state
    local stateINS = 0
    
    
    ------------------------------------------------------------------------
    
    
    ------------------ get pairs -------------------------------------------
    function sibling(_sChar)
    	local leftChar, rightChar
    	if tPairs['Left'][_sChar] ~= nil then
    		rightChar = tPairs['Left'][_sChar]
    		leftChar  = tPairs['Right'][rightChar]
    	elseif  tPairs['Right'][_sChar] ~= nil then
    		leftChar  = tPairs['Right'][_sChar]
    		rightChar = tPairs['Left'][leftChar]
    	end
    	return leftChar, rightChar
    end  --> sibling
    ------------------------------------------------------------------------
    
    
    ----------------- set edging -------------------------------------------
    function EdgeSelection(_hitChar)
    	local leftChar, rightChar = sibling(_hitChar)
    	local selStart  = editor.SelectionStart
    	local selEnd    = editor.SelectionEnd
    	local firstLine = editor:LineFromPosition(selStart)
    	local lastLine  = editor:LineFromPosition(selEnd)
    	local aPos, n, sSelection = {}, 0
    	local caret, sSelection, fLeft, sScope
    	if     leftChar:find('[Dd]') then sScope = 'Dim'         -- using 'd g l' sets scope for array declaration as 'Dim Global Local'
    	elseif leftChar:find('[Ll]') then sScope = 'Local'
    	elseif leftChar:find('[Gg]') then sScope = 'Global' end
    
    
    	caret = editor.CurrentPos
    	if caret <= selStart then fLeft = 1 else fLeft = 0 end -- is caret left from selection?
    	if (selStart == selEnd) and (tPairs['Right'][_hitChar] ~= nil) and (_hitChar ~= "'" and _hitChar ~= '"') then return nil end
    	-- store selected area (start- /endposition in used lines)
    	-- from 2nd line add to position the count of chars to insert
    	for i = firstLine, lastLine do
    		aPos[i] = {}
    		aPos[i][1] = editor:GetLineSelStartPosition(i) + n*2
    		aPos[i][2] = editor:GetLineSelEndPosition(i) + n*2
    		n = n +1
    	end
    	-- insert edging chars at start- /endposition
    	editor:BeginUndoAction()
    	local sAsString, sDeclaration = '', ''
    	if leftChar:find('[DGL]') then sAsString = '"' end n = 0
    	-- 'd g l' creates an array declaration, every line as one entry; with 'D G L' all entries will marked as string
    	if firstLine == lastLine then
    		if leftChar:find('[DGLdgl]') then
    			local sTxt = editor:GetLine(firstLine)
    			sTxt = sTxt:gsub('[\r\n]', '')
    			sDeclaration = sScope .. ' $a[1] = [' .. sAsString .. sTxt .. sAsString .. ']'
    			editor:DeleteBackNotLine()
    			editor:InsertText(editor.CurrentPos, sDeclaration)
    			editor:GotoPos(editor.CurrentPos +sScope:len() +3)
    		else
    			if fLeft == 1 then editor:InsertText(aPos[firstLine][2], rightChar) end
    			if fLeft == 0 then editor:InsertText(aPos[firstLine][1], leftChar) editor:GotoPos(caret +1) end
    		end
    	else
    		if leftChar:find('[DGLdgl]') then
    			for i = firstLine, lastLine do
    				local sTxt = editor:GetLine(i)
    				sTxt = sTxt:gsub('[\r\n]', '')
    				sDeclaration = sDeclaration .. sAsString .. sTxt .. sAsString .. ','
    				n = n +1
    			end
    			sDeclaration = sScope .. ' $a[' .. n .. '] = [' .. sDeclaration
    			sDeclaration = sDeclaration:gsub(',$', ']')
    			editor:DeleteBackNotLine()
    			editor:InsertText(editor.CurrentPos, sDeclaration)
    			editor:GotoPos(editor.CurrentPos +sScope:len() +3)
    		else
    			n = 0
    			for i = firstLine, lastLine do
    				if fLeft == 1 and i == firstLine then
    					editor:InsertText(aPos[i][2], rightChar)
    				elseif fLeft == 0 and i == lastLine then
    					editor:InsertText(aPos[i][1], leftChar) editor:GotoPos(caret +n*2 +1)
    				else
    					if fLeft == 1 and n > 0 then aPos[i][1] = aPos[i][1] -1 aPos[i][2] = aPos[i][2] -1 end
    					editor:InsertText(aPos[i][2], rightChar)
    					editor:InsertText(aPos[i][1], leftChar)
    				end
    				n = n +1
    			end
    		end
    	end
    	editor:EndUndoAction()
    end  --> EdgeSelection
    ------------------------------------------------------------------------
    
    
    
    
    ----------------- Event: OnKey -----------------------------------------
    function HitKey:OnKey(_keycode, _shift, _ctrl, _alt)
    --~ print('_keycode: '..tostring(_keycode)..', _shift: '..tostring(_shift)..', _ctrl: '..tostring(_ctrl)..', _alt: '..tostring(_alt))  -- DebugToConsole
    
    
    	if tonumber(props['NoPairs.'..props['FileExt']:lower()]) == 1 then return nil end    -- to exclude file-types from this function
    	if _keycode == 45 then if stateINS == 0 then stateINS = 1 else stateINS = 0 end end  -- on hit INSERT-key change key-state
    	if stateIns == 1 then return nil end                                                 -- INSERT-key in OVERWRITE-mode
    	if tCode[lang]['SHIFT'][_keycode] ~= nil and _shift == true then return EdgeSelection(tCode[lang]['SHIFT'][_keycode]) end
    	if tCode[lang]['CTRL_ALT_SHIFT'][_keycode] ~= nil and _ctrl == true and _alt == true and _shift == true then return EdgeSelection(tCode[lang]['CTRL_ALT_SHIFT'][_keycode]:upper()) end
    	if tCode[lang]['CTRL_ALT'][_keycode] ~= nil and _ctrl == true and _alt == true then return EdgeSelection(tCode[lang]['CTRL_ALT'][_keycode]) end
    	if tCode[lang]['RAW'][_keycode] ~= nil then return EdgeSelection(tCode[lang]['RAW'][_keycode]) end
    	return nil
    end  --> HitKey
    ------------------------------------------------------------------------
    Alles anzeigen

    Über mehrere Zeilen mit einem Rutsch Klammernpaare setzen:
    Zeilen 0 Spalten breit markieren (SHIFT+ALT+n-mal PFEIL_AB) [Blockierte Grafik: http://www.imgbox.de/users/BugFix/edge_emptyblock1.JPG] Schließende Klammer eingeben [Blockierte Grafik: http://www.imgbox.de/users/BugFix/edge_emptyblock2.JPG]

    Blockmarkierung, in jeder Zeile wird am Beginn und am Ende der Markierung mit Gänsefüßchen eingefaßt:
    [Blockierte Grafik: http://www.imgbox.de/users/BugFix/edge_block1.JPG] [Blockierte Grafik: http://www.imgbox.de/users/BugFix/edge_block2.JPG] [Blockierte Grafik: http://www.imgbox.de/users/BugFix/edge_block3.JPG]

    Der markierte Bereich wird mit eckigen Klammern eingefaßt (z.B. um Variablen nachträglich als Arrayinhalt zu deklarieren):
    [Blockierte Grafik: http://www.imgbox.de/users/BugFix/edge_braces1.JPG] [Blockierte Grafik: http://www.imgbox.de/users/BugFix/edge_braces2.JPG] [Blockierte Grafik: http://www.imgbox.de/users/BugFix/edge_braces3.JPG]

    String mit Gänsefüßchen einfassen:
    [Blockierte Grafik: http://www.imgbox.de/users/BugFix/edge_string1.JPG] [Blockierte Grafik: http://www.imgbox.de/users/BugFix/edge_string2.JPG] [Blockierte Grafik: http://www.imgbox.de/users/BugFix/edge_string3.JPG]

    DL bisher: 15

    Dateien

    EdgingSelection[1.6].lua 10,32 kB – 525 Downloads
  • Editfeld mehrzeilig speichern und auslesen

    • BugFix
    • 27. Oktober 2011 um 13:26
    Zitat von mirko2002

    Und das versteh ich nicht.... mein Text kommt ja auch der Editbox,


    Wenn du einen Text aus einer Editbox ausliest, sieht er genau so aus, wie in meinem Beispiel-Text. Nur dass beim Anzeigen in einem Editor natürlich der Editor auch (sinnvollerweise ;)) die Zeichenfolge 'ASCII13 ASCII10', in AutoIt durch das Makro @CRLF vertreten, in einen Zeilenumbruch wandelt.
    Ich hatte diese Textzeile erstellt, damit du die Zeilenumbrüche auch mal bewußt wahrnimmst.

  • Editfeld mehrzeilig speichern und auslesen

    • BugFix
    • 27. Oktober 2011 um 11:46

    Oder so, dann hast du nach dem Lesen einen Text, den du wieder mit GUICtrlSetData in dein Edit einfüge kannst, mit allen Umbrüchen.

    [autoit]

    ; == Bsp. Text mit GuiCtrlRead($edit) gelesen:
    $text = "Zeile 1" & @CRLF & "Zeile 2" & @CRLF & "Zeile 3" & @CRLF & "Zeile 4"

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

    ; == in INI schreiben mit Ersetzen der Umbrüche durch [CRLF]
    IniWrite('INI', 'section', 'key', StringReplace($text, @CRLF, '[CRLF]'))

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

    ; == in INI sthet jetzt: key=Zeile 1[CRLF]Zeile 2[CRLF]Zeile 3[CRLF]Zeile 4
    ; == Beim Lesen:
    $key = IniRead('INI', 'section', 'key', '')
    $key = StringReplace($key, '[CRLF]', @CRLF)

    [/autoit]

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™