Ist doch drin - halt ein wenig in der Hilfe vergraben, aber da. ![]()
Beiträge von BugFix
-
-
Ich denke, du suchst sowas:
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIListView.au3>$gui = GUICreate('test')
[/autoit] [autoit][/autoit] [autoit]
$lv = GUICtrlCreateListView('Spalte1|Spalte2', 10, 10, 300, 200)
For $i = 1 To 10
GUICtrlCreateListViewItem('Zeile ' & $i & 'Spalte 1|Zeile ' & $i & 'Spalte 2', $lv)
Next
GUISetState()
GUIRegisterMsg($WM_NOTIFY, "MY_WM_COMMAND")Do
[/autoit] [autoit][/autoit] [autoit]
$msg = GUIGetMsg()
Until $msg = $GUI_EVENT_CLOSEFunc ListView1Click()
[/autoit] [autoit][/autoit] [autoit]
Local $item = _GUICtrlListView_GetItemTextArray($lv)
MsgBox(0, '', 'Text in Spalte 2: ' & $item[2])
EndFuncFunc MY_WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
[/autoit]
Local $tagNMHDR, $event
Switch $wParam
Case $lv ; ListView-ID
$tagNMHDR = DllStructCreate("int;int;int", $lParam)
If @error Then Return
$event = DllStructGetData($tagNMHDR, 3)
Switch $event
Case $NM_CLICK
ListView1Click()
Case $NM_DBLCLK
;~ ListView1DoubleClick()
Case $NM_RCLICK
;~ ListView1RightClick()
Case $NM_RDBLCLK
;~ ListView1RightDoubleClick()
Case $NM_LDOWN
;~ ListView1LeftDown()
Case $NM_RDOWN
;~ ListView1RightDown()
EndSwitch
EndSwitch
$tagNMHDR = 0
EndFuncEdit:
Ich hab jetzt mal die Funktion 'WM_NOTIFY' aus der aktuellen Version verwendet und die auswertbaren Parameter in ein Array gepackt, dass an die Funktion übergeben werden kann.
Bietet jetzt viel mehr Möglichkeiten als noch die alte Version.Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIListView.au3>$gui = GUICreate('test')
[/autoit] [autoit][/autoit] [autoit]
$hListView = GUICtrlCreateListView('Spalte1|Spalte2', 10, 10, 300, 200)
For $i = 1 To 10
GUICtrlCreateListViewItem('Zeile ' & $i & 'Spalte 1|Zeile ' & $i & 'Spalte 2', $hListView)
Next
GUISetState()
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
Do
$msg = GUIGetMsg()
Until $msg = $GUI_EVENT_CLOSEFunc _LeftClick($Info)
[/autoit] [autoit][/autoit] [autoit]
MsgBox(0, 'Text in Spalte', _GUICtrlListView_GetItemText($Info[1], $Info[3], $Info[4]) )
EndFuncFunc WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
[/autoit] [autoit][/autoit] [autoit]
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
$hWndListView = $hListView
If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
[/autoit]
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $hWndListView
Switch $iCode
Case $LVN_COLUMNCLICK ; A column was clicked
Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
Local $aInfo[11] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "Param")]
;~ _ColumnClick($aInfo)
Case $LVN_DELETEITEM ; An item is about to be deleted
Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
Local $aInfo[11] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "Param")]
;~ _ItemDeleted($aInfo)
Case $LVN_HOTTRACK ; Sent by a list-view control when the user moves the mouse over an item
Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
Local $aInfo[11] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "Param")]
Return 0 ; allow the list view to perform its normal track select processing.
;Return 1 ; the item will not be selected.
;~ _HottTrackItem($aInfo)
Case $LVN_KEYDOWN ; A key has been pressed
Local $tInfo = DllStructCreate($tagNMLVKEYDOWN, $ilParam)
Local $aInfo[5] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "VKey"), _
DllStructGetData($tInfo, "KeyFlags")]
;~ _KeyDown($aInfo)
Case $NM_CLICK ; Sent by a list-view control when the user clicks an item with the left mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $aInfo[12] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "lParam"), _
DllStructGetData($tInfo, "KeyFlags")]
_LeftClick($aInfo)
Case $NM_DBLCLK ; Sent by a list-view control when the user double-clicks an item with the left mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $aInfo[12] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "lParam"), _
DllStructGetData($tInfo, "KeyFlags")]
;~ _LeftDblClick($aInfo)
Case $NM_KILLFOCUS ; The control has lost the input focus
Local $aInfo[3] = [$hWndFrom, _
$iIDFrom, _
$iCode]
;~ _LostFocus($aInfo)
Case $NM_RCLICK ; Sent by a list-view control when the user clicks an item with the right mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $aInfo[12] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "lParam"), _
DllStructGetData($tInfo, "KeyFlags")]
; Return 1 ; not to allow the default processing
Return 0 ; allow the default processing
;~ _RightClick($aInfo)
Case $NM_RDBLCLK ; Sent by a list-view control when the user double-clicks an item with the right mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $aInfo[12] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "lParam"), _
DllStructGetData($tInfo, "KeyFlags")]
;~ _RightDblClick($aInfo)
Case $NM_RETURN ; The control has the input focus and that the user has pressed the ENTER key
Local $aInfo[3] = [$hWndFrom, _
$iIDFrom, _
$iCode]
;~ _InputFocusReturn($aInfo)
Case $NM_SETFOCUS ; The control has received the input focus
Local $aInfo[3] = [$hWndFrom, _
$iIDFrom, _
$iCode]
;~ _SetFocus($aInfo)
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY -
Mach es doch so:
Spoiler anzeigen
[autoit]#include <guiconstants.au3>
[/autoit] [autoit][/autoit] [autoit]
Opt('GUIOnEventMode', 1)
Dim $verk1[15], $counter = 0, $button_pos = 10
GUICreate('', 600, 500, -1, -1)
GUISetOnEvent($GUI_EVENT_CLOSE, '_ende')
Do
$verk1[$counter] = GUICtrlCreateButton ('Button' & $counter+1, 100, $button_pos, 80)
GUICtrlSetOnEvent($verk1[$counter], '_FuncButt' & $counter+1)
$button_pos += 30
$counter += 1
Until $counter > 14GUISetState()
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
Sleep(100)
WEndFunc _ende()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFuncFunc _FuncButt1()
[/autoit]
MsgBox(0, '', 'Button1')
EndFunc
Func _FuncButt2()
MsgBox(0, '', 'Button2')
EndFunc
Func _FuncButt3()
MsgBox(0, '', 'Button3')
EndFunc
Func _FuncButt4()
MsgBox(0, '', 'Button4')
EndFunc
Func _FuncButt5()
MsgBox(0, '', 'Button5')
EndFunc
Func _FuncButt6()
MsgBox(0, '', 'Button6')
EndFunc
Func _FuncButt7()
MsgBox(0, '', 'Button7')
EndFunc
Func _FuncButt8()
MsgBox(0, '', 'Button8')
EndFunc
Func _FuncButt9()
MsgBox(0, '', 'Button9')
EndFunc
Func _FuncButt10()
MsgBox(0, '', 'Button10')
EndFunc
Func _FuncButt11()
MsgBox(0, '', 'Button11')
EndFunc
Func _FuncButt12()
MsgBox(0, '', 'Button12')
EndFunc
Func _FuncButt13()
MsgBox(0, '', 'Button13')
EndFunc
Func _FuncButt14()
MsgBox(0, '', 'Button14')
EndFunc
Func _FuncButt15()
MsgBox(0, '', 'Button15')
EndFunc -
Du verwendest $hallo an einer Stelle, wo die Variable noch gar keinen Wert hat - quasi noch nicht existiert

Außerdem mußt du GUICtrlSetData() innerhalb der Schleife zum Zuweisen verwenden. Und dafür benötigst du die ID des Edits, die wird dir beim Erstellen zurückgegeben: $ID = GUICtrlCreateEdit() -
z.B. TrayTip()
-
Wieder der Hinweis: Bitte in die Hilfe zum Befehl schauen.
_ArrayDelete() arbeitet NUR mit 1D-Arrays. (OK, steht in der Hilfe nicht explizit. Aber aus Bsp. und Nichterwähnung 2D ableitbar.)
Verwende die Funktion _Array2DDelete()aus meiner Signatur.Edit
[autoit]
Nochwas:_ArrayDelete( $name, $name[$i][1])
[/autoit]geht so nicht. $name ist ein 1D-Array(oder hast du das geändert?) - also:
[autoit]_ArrayDelete( $name, $name[$i])
[/autoit]Das führt aber zu einem Fehler, weil durch das Löschen das Array kleiner wird und die Indexzuordnung nicht mehr stimmt!
Empfehlung: NICHT löschen, sondern Null-Strings reinschreiben und beim Abarbeiten die Nullstringinhalte per Abfrage übergehen. -
@Lina
Naja, deshalb hab ich es auch im Forum Entwickler gepostet
Aber in einem Satz zusammengefaßt:
Du kannst Integerzahlen bis 65535 paarweise in einer Variablen ablegen.Mal ein Anwendungsbeispiel:
Mit _WinAPI_GetWindowLong kannst du die Eigenschaften eines Fensters ermitteln.
Möchtest du das Fenster mit 2 verschiedenen Eigenschaften nutzen, legst du eine Variable für Style1 und eine für Style2 an.
Im LoWord von Var1 speicherst du den Wert für Style1 und im HiWord für ExStyle1.
Analog in Var2 für die anderen Styles.
In der Anwendung kannst du dann zwischen beiden Eigenschaften mit _WinAPI_SetWindowLong switchen. -
Hi,
[autoit]
ich hab mal ein wenig in den WinAPI-Funktionen gestöbert. Da gibt es sicher noch Vieles, was so nach und nach in unsere tägliche Programmierung einfließen wird.
Dabei bin ich über _WinAPI_MakeLong und _WinAPI_MakeDWord gestolpert.
Beide Funktionen bieten die Möglichkeit, einer Variablen 2 Integer-Werte zuzuordnen - einmal im LoWord-Sektor und einmal im HiWord-Sektor.
Der speicherbare Zahlenbereich erstreckt sich von 0-65535 (Word = 16 Bit).
Die Werte lassen sich aus der Variablen mit _WinAPI_LoWord bzw. _WinAPI_HiWord selektieren.
Eine Besonderheit ergibt sich hierbei:
Während _WinAPI_LoWord den Wert genau, wie übergeben zurückgibt, werden alle Zahlen > 32767 von _WinAPI_HiWord als negative Zahl, rückwärts auf Null zählend zurückgegeben, wobei die erste Negativzahl -32768 ist.
Daraus folgt: Wenn _WinAPI_HiWord negativ, dann gilt: Integerwert = 65536 + neg. Rückgabewert
Ob man _WinAPI_MakeLong oder _WinAPI_MakeDWord verwendet ist für diese Art der Anwendung ohne Belang. Ich würde aber _WinAPI_MakeLong bevorzugen, da hier die Reihenfolge der Parameter logischer ist (erst LoWord, dann HiWord).$varLo = 65535
[/autoit][autoit][/autoit][autoit]
$varHi = 240
$testLong = _WinAPI_MakeLong($varLo, $varHi)$loOut = _WinAPI_LoWord($testLong)
[/autoit][autoit][/autoit][autoit]
$hiOut = _WinAPI_HiWord($testLong)
If $hiOut < 0 Then $hiOut = 65536 + $hiOutMsgBox(0, 'ausgelesene Werte', 'LoWord: ' & $loOut & @LF & 'HiWord: ' & $hiOut)
[/autoit][autoit][/autoit][autoit][/autoit][autoit]Func _WinAPI_MakeLong($iLo, $iHi)
[/autoit]
Return BitOR(BitShift($iHi, -16), BitAND($iLo, 0xFFFF))
EndFunc
Func _WinAPI_MakeDWord($HiWord, $LoWord)
Return BitOR($LoWord * 0x10000, BitAND($HiWord, 0xFFFF))
EndFunc
Func _WinAPI_HiWord($iLong)
Return BitShift($iLong, 16)
EndFunc
Func _WinAPI_LoWord($iLong)
Return BitAND($iLong, 0xFFFF)
EndFunc -
Dann gibbet was auf die Mütze wegen erwiesener Dummheit

Edit:
Nee, mal ernsthaft.
Dann bekommst du natürlich Fehler = 3, denn 0-tes Auftreten des Trennzeichens ist identisch mit Trennzeichen nicht im String. -
Hier mal als Code:
[autoit]Dim $Ardir1[10]
[/autoit]
Dim $Ardir2[12]
Dim $ArReg1[8]
Dim $ArReg2[4]
Dim $ArReg3[8]
Dim $ArReg4[15]
Dim $arALL[6]=[$Ardir1,$Ardir2,$ArReg1,$ArReg2,$ArReg3,$ArReg4]
For $i = 1 To UBound($arALL)-1
_Array2DJoin($arALL[0], $arALL[$i])
Next
; $arALL[0] (also $Ardir1) enthält dann alle Arrays -
Nimm _Array2DJoin() aus meiner Signatur und füge in einer Schleife alle zueinander

-
Ich denke, da helfen dir meine Funktionen:
• _FileWriteFromArray2D und
• _FilereadToArray2D
weiter: FileWriteFromArray2D -
OK, dann speichere deine Zuordnung in einem Array ab:
[autoit]Dim $aMuster[27][2]
[/autoit][autoit][/autoit][autoit]
$aMuster[0][0] = 'A'
$aMuster[0][1] = 'L'$aMuster[1][0] = 'B'
[/autoit][autoit][/autoit][autoit]
$aMuster[1][1] = 'SPR'$aMuster[2][0] = 'C'
[/autoit]
$aMuster[2][1] = '18'
usw.Aber glaub mir: Du wirst es nicht schaffen das wieder zu Decrypten. Denn woher weißt du, dass z.B. "SPR" für ein Zeichen steht....??
-
Zitat
wollts nur sagen bevor er den ganzen Code nochma durchgeht und mit tab einrückt oder so
Schon mal was von Tiny gehört?
Findest du in SciTE und das erledigt das für dich. -
Du verwendest das Wort "Encrypter" - also gehe ich davon aus, dass du (wenn auch primitiv) verschlüsseln willst.
Verschlüsseln ist nichts anderes als rechnen und zum Rechnen braucht man Zahlen. Ergo ==> ASCII-Werte der Buchstaben.
Ich weiß nicht, inwieweit du dich mit Verschlüsselungssystemen auskennst, ein ganz simples ist z.B. Rot13.
Der ROT13-Algorithmus basiert auf einer Verschiebung aller Buchstaben um 13 Positionen im Alphabet. Technisch heisst das, dass die ASCII-Werte der Buchstaben um 13 inkrementiert bzw. dekrementiert werden. -
- Für jeden Buchstaben gibt es einen entsprechenden ASCII-Wert - schau mal in der Hilfe unter ASCII.-
- Button in einer GUI ==> Hilfe: Funktion GUICtrlCreateButton(), da findest du alles was du brauchst. -
Hi,
mal wieder ein kleines Helferlein
_StringSplitOnce($STRING, $DELIM [, $OCCURENCE=1])
• Splitten eines Strings am gegebenen Vorkommen des Trennzeichens
• Standard: erstes Auftreten von links
• mit negativen Werten wird von rechts gezählt
• Rückgabe eines Array, Array[0]=links v. Trennzeichen; Array[1]=rechts v. TrennzeichenSpoiler anzeigen
[autoit];===============================================================================
[/autoit]
;
; Function Name: _StringSplitOnce($STRING, $DELIM [, $OCCURENCE=1])
; Description: Splits a string on given occurence of delimiter
; Parameter(s): $STRING String to split
; $DELIM Delimiter
; $OCCURENCE Occurence of Delimiter ('-' starts from the right side, Default=1)
; Requirement(s):
; Return Value(s): Succes Array[0]=left side / Array[1]=right side of splittet string
; Failure Set error
; @error = 1 No string given
; @error = 2 No delimiter given
; @error = 3 Delimiter not in string
; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
;
;===============================================================================
Func _StringSplitOnce($STRING, $DELIM, $OCCURENCE=1)
If $STRING = '' Then Return SetError(1)
If $DELIM = '' Then Return SetError(2)
Local $Out[2]
Local $len = StringLen($STRING)
Local $pos = StringInStr($STRING, $DELIM, 1, $OCCURENCE)
If @error Then Return SetError(3)
$Out[0] = StringLeft($STRING, $pos-1)
$Out[1] = StringRight($STRING, $len-$pos)
Return $Out
EndFunc ;==>_StringSplitOnce -
Hier Oscar, nur für dich

Du kannst den Start Index für Item und SubItem festlegen. Der SubItemIndex wird natürlich nur einmal verwendet, anschließend werden wieder alle Spalten durchsucht.
Somit kannst du deine Suche mit dem letzten Ergebnis fortsetzen. Mußt nur (in Abhängigkeit von der Spaltenzahl und dem letzten Treffer) entweder ItemIndex oder SubItemIndex um 1 erhöhen.Spoiler anzeigen
[autoit];-----------------------------------------------------------------------------------------------------------------------
[/autoit]
; Function _LV_Search($LV, $What2Find [, $CaseSens=True [, $Partial=False [, $iStart=0 [,$kStart=0]]]])
;
; Description search a term in every item and subitem of a given ListView
;
; Parameter $LV ListView -ID
; $What2Find Search term
; $CaseSens Casesensitivity True (default) or False
; $Partial Partialsearch, Casesens will set to False also if given True
; $iStart ItemIndex for start (default 0)
; $kStart SubItemIndex for start (default 0), works only in 1.st loop, than SubItemIndex is 0
;
; Return Success Array[0] = LV-Index
; Array[1] = SubItem-Index
; Failure Return -1 and set @error : 1 - ListView is empty
; 2 - $What2Find was not found
;
; Requirements #include <GuiListView.au3>
;
; Author BugFix ([email='bugfix@autoit.de'][/email])
;-----------------------------------------------------------------------------------------------------------------------
#include <GuiListView.au3>
Func _LV_Search($LV, $What2Find, $CaseSens=True, $Partial=False, $iStart=0, $kStart=0)
$count = _GUICtrlListView_GetItemCount($LV)
Local $aOut[2] = [-1,0]
If $count < 1 Then
SetError(1)
Return -1
EndIf
If $Partial Then $CaseSens = False
$countSub = _GUICtrlListView_GetColumnCount($LV)
For $i = $iStart To $count-1
For $k = $kStart To $countSub-1
If $CaseSens Then
If _GUICtrlListView_GetItemText($LV, $i, $k) == $What2Find Then
$aOut[0] = $i
$aOut[1] = $k
Return $aOut
EndIf
Else
If Not $Partial Then
If _GUICtrlListView_GetItemText($LV, $i, $k) = $What2Find Then
$aOut[0] = $i
$aOut[1] = $k
Return $aOut
EndIf
Else
If StringInStr(_GUICtrlListView_GetItemText($LV, $i, $k), $What2Find, 1) Then
$aOut[0] = $i
$aOut[1] = $k
Return $aOut
EndIf
EndIf
EndIf
Next
$kStart = 0
Next
SetError(2)
Return -1
EndFunc ;==>_LV_Search -
So, angepaßt an 3.2.10.0 und funktional erweitert.
s. Post #1 -
Einen Vorschlag noch, bzw. mir ist aufgefallen, das er die neuen Einträge nicht sortiert.
Hi Lina,
die Einträge sind auch so nicht sortiert, sondern gruppiert nach Themen. Insofern war mir das nicht so wichtig. Ich stelle die Einträge in der Reihenfolge dar, wie sie in der Datei enthalten sind.
Neue Einträge werden in jedem Fall ans Ende geschrieben, gewissermaßen hast du dann eine zusammenhängende Gruppe selbst erstellter Abkürzungen.
Editierte Abkürzungen werden in jedem Fall an dieselbe Position zurückgeschrieben.NB: Neu erstellte Kürzel benötigen einen erneuten Start von SciTE, damit sie initialisiert werden können.
