Erweiterung:
Der zu prüfende String kann jetzt auch Zeilenumbrüche (@CR oder @CRLF) enthalten.
s. Post1
Beiträge von BugFix
-
-
-
\s = Leerzeichen
Zeilenumbruch (CRLF) wird mit \r\n maskiert. -
Wenn ich nicht irre, ist es italienisch. Genauso spricht nämlich mein Kollege - und der ist Italiener.

-
Das zweimal ENTER verstehe ich nicht, wozu?
Weshalb soll die Datei offen (also im Editor) sein? Dann kann man ja nichts eintragen?
Mal als Ansatz:Spoiler anzeigen
[autoit]; === Fenstererkennung an Teilen des Titels
[/autoit] [autoit][/autoit] [autoit]
Opt("WinTitleMatchMode", 2); === Hotkey zum Skript Beenden
[/autoit] [autoit][/autoit] [autoit]
HotKeySet('^!e', '_ende') ; === STRG + ALT + e; === Variable zum Speichern des letzten Clipboardinhalts
[/autoit] [autoit][/autoit] [autoit]
Local $sClipOld = '', $sClipWhile True
[/autoit] [autoit][/autoit] [autoit]
If WinExists("C:\Tools\Zwischenablage.txt") Then
$sClip = ClipGet()
If $sClip <> $sClipOld Then
$sClipOld = $sClip
; in Datei schreiben
; Send geht nicht, da Datei im Hintergrund sein soll (warum soll sie überhaupt offen sein?)
; zum Schreiben muß die Datei geschlossen werden, dann kann mit Filewrite der Inhalt von
; $sClip geschrieben werden.
EndIf
EndIf
Sleep(100)
WEndFunc _ende()
[/autoit]
Exit
EndFunc -
Mal die AGB gelesen?
Zitat1.2.9 Die Nutzung der Spiele und Services ist nur mittels eines Internetbrowsers oder spezieller, von der Bigpoint GmbH zur Verfügung gestellter oder ausdrücklich zugelassener Tools zulässig („Verbot der Nutzung nicht autorisierter Skripte“). Dies bedeutet insbesondere: Die Verwendung von Programmen, die eine übermäßige Belastung des Servers erzeugen, ist unzulässig. Der Einsatz von Software zur systematischen oder automatischen Steuerung der Spiele oder einzelner Spielfunktionen (Bots, Makros), zur Reproduktion oder Auswertung der Spiele, Spielelemente oder der auf der Plattform Bigpoint eingestellten Inhalte ist unzulässig.
-
Schau mal folgendes Skript an, da findet sich sicher was für deine Zwecke:
https://autoit.de/index.php?page…67020#post67020 -
Schau mal in die Hilfe:
- IniRead
- IniWrite
- WinActivate -
Finde den Link leider nicht mehr.
Aber etwas wirklich interaktives zu skripten ist nicht gerade einfach. Das geht nur solange recht gut, wie die Aufgabenstellung eine geringe und leicht zu überprüfende Zahl an Lösungsvarianten zuläßt.

Ich wünsch euch auf jeden Fall viel Spaß. -
Betreff der geschweiften Klammern hast du recht, die hab ich glatt vergessen.
Aber sowohl bei geschweifter als auch bei eckiger Klammer muß nur die öffnende Klammer maskiert werden. Die schließenden Klammern alleinstehend werden von der Regex-Engine als normale Zeichen behandelt. Probier es aus - gibt keine Fehler.Neue Version in Post 1.
Habe den Tipp von progandy umgesetzt. -
Kann mich erinnern, dass es im EN-Forum mal sowas gab. Vielleicht finde ich es noch.
-
Am besten ist es Koda gar nicht zu verwenden. Wozu hat man einen Kopf zum Rechnen ;). Und wenn man es per Hand macht, spart man sich auch die Hälfte weglöschen zu müssen (nutze mal OnEvent mit Koda :wacko: ).
Ich verwende Koda max. um einen groben Entwurf zu erstellen, Feinschliff auf jeden Fall von Hand. -
Rein interessehalber: Warum ist denn ']' nicht bei den Metachars?
Und was ist mit '{' und '}' ?
Weil diese Zeichen keine besondere Bedeutung haben. Ausschließlich die 11 aufgeführten Zeichen haben eine Doppelfunktion und müssen deshalb maskiert werden. -
Wer mit SQL arbeitet kennt LIKE, um maskiert zu suchen.
In AutoIt können wir das mit RegEx erledigen. Da damit doch so mancher seine Probleme hat, habe ich die Syntax von LIKE verwendet ('_' =Platzhalter für ein beliebiges Zeichen an dieser Stelle; % =Platzhalter für eine beliebige Zahl von Zeichen, auch 0) und setze das intern in eine Regex-Prüfung um.
Im Unterschied zu LIKE, das immer case-sensitiv ist, kann hier die Sensitivität gewählt werden. Standard ist False.Edit3:
Erweiterung:
Der zu prüfende String kann jetzt auch Zeilenumbrüche (@CR oder @CRLF) enthalten.Edit2:
War noch ein Fehler drin beim An-/Abschalten der Metacharacter Erkennung.Edit:
Habe progandys Hinweis jetzt eingearbeitet._Search_LIKE( )
[autoit]
[/autoit] [autoit][/autoit] [autoit]
Local $aTest[5] = [60123,62345,54175,62340,'C:\Code\Test.au3']For $i = 0 To 4
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
If _Search_LIKE($aTest[$i], '6%') Then ConsoleWrite('erste Position eine 6 - ' & $aTest[$i] & @CRLF)
If _Search_LIKE($aTest[$i], '6%0') Then ConsoleWrite('erste Position eine 6, letzte eine 0 - ' & $aTest[$i] & @CRLF)
If _Search_LIKE($aTest[$i], '__1%') Then ConsoleWrite('dritte Position eine 1 - ' & $aTest[$i] & @CRLF)
If _Search_LIKE($aTest[$i], '__3%') Then ConsoleWrite('dritte Position eine 3 - ' & $aTest[$i] & @CRLF)
If _Search_LIKE($aTest[$i], '%test.au3') Then ConsoleWrite('test.au3 im Pfad - ' & $aTest[$i] & @CRLF)
ConsoleWrite(@CRLF)
Next;===============================================================================
[/autoit]
; Function Name: _Search_LIKE($sTest, $sMask, $fCasesens=False)
; Description: Prüft String auf Übereinstimmung mit Suchmaske
; Parameter(s): $sTest - der zu prüfende String
; Requirement(s): $sMask - die Suchmaske, analog zu LIKE in SQL
; _ =Platzhalter f. EIN beliebiges Zeichen an dieser Stelle,
; % =Platzhalter f. eine beliebige Menge von Zeichen
; $Casesense - False (Standard), nicht case-sensitiv
; Return Value(s): 1 - Übereinstimmung mit Suchmaske
; 0 - keine Übereinstimmung
; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
;===============================================================================
Func _Search_LIKE($sTest, $sMask, $fCasesens=False)
Local $pattern = '^'
If Not $fCasesens Then $pattern &= '(?i)'
$pattern &= '\Q' & StringRegExpReplace($sMask, '\\E', '\\E\\\\E\\Q')
$pattern = StringRegExpReplace(StringRegExpReplace($pattern, '%', '\\E.*\\Q'), '_', '\\E.\\Q') & '\E\z'
$sTest = StringRegExpReplace($sTest, '\r\n|\r', ' ')
Return StringRegExp($sTest, $pattern)
EndFunc ;==>_Search_LIKE -
Es geht kürzer:
[autoit]Local $checkbox[75]
[/autoit][autoit][/autoit][autoit]Local $Form1 = GUICreate("Form1", 875, 600, -1, -1)
[/autoit][autoit][/autoit][autoit]
Local $top = 75
Local $left = 25
For $i = 0 To UBound($checkbox) - 1
Switch $i
Case 15, 30, 45, 60
$left += 175
$top = 75
EndSwitch
$checkbox[$i] = GUICtrlCreateCheckbox("checkbox" & $i, $left, $top, 175, 17)
$top += 20
NextGUISetState(@SW_SHOW)
[/autoit][autoit][/autoit][autoit]While True
[/autoit]
Switch GUIGetMsg()
Case -3
Exit
EndSwitch
WEnd -
Sowas aber auch
, bisher konnte ich mich erfolgreich um OOP drücken, weil es in AutoIt nicht verfügbar war und nun DAS! 
Scherz beiseite, tolle Arbeit, die da geleistet wurde.
Nun woll'n wir mal schauen, wo uns das das Leben erleichtern kann.
-
Bsp.:
[autoit]MsgBox(0, '', _Repeat('a', 5))
[/autoit][autoit][/autoit][autoit]
MsgBox(0, '', _Repeat('a', 10))
MsgBox(0, '', _Repeat('a', 15))Func _Repeat($string, $count)
[/autoit]
Local $out = ''
For $i = 1 To $count
$out &= $string
Next
Return $out
EndFunc -
Mit Stringfunktionen:
[autoit]$s = 'C:\\Programme\Hersteller\Bin\Application.exe'
[/autoit]
$s = StringTrimLeft($s, StringInStr($s, '\', 1, -1)) -
Wichtig - unbedingt als eindeutigen Schlüssel eine ID vergeben. Alle anderen Angaben können redundant sein.
-