Da ich ja weis, dass es pro Math 3 Subpattern sind, hab ich das ganze nun mit For-Schleifen und nem zusätlichen Array gelöst.
Wenn trotzdem noch jmd eine Möglichkeit hat, wie das schneller geht, hab ich nichts dagegen
Beiträge von Alcros
-
-
hi,
[autoit]
habe gerade ein kleines StringRegExp "Problem ":#include <Array.au3>
[/autoit][autoit][/autoit][autoit]$var = '{"id":1,"name":"Person1","flagholdcount":0},{"id":2,"name":"Person2","flagholdcount":0}'
[/autoit]
$pattern = '{"id":(\d+?),"name":"(.+?)","flagholdcount":(\d+?)}'
$strreg = StringRegExp($var, $pattern, 3)
_ArrayDisplay($strreg))
Er gibt mir die Sachen zwar zurück, allerdings würde ich gerne , dass er ein 2-dimensionales Array erstellt, wo in der 1sten Dimension die Matches und in der 2ten Dimension dann die Subpattern gespeichert sind.
Geht das ??Danke für Hilfe !
mfg Alcros -
nun bei AutoIT wirst du nie ne richtige Sicherheit haben, da man es ohne Obfuscator + ähnliches leicht decompilen kann.
Und selbst wenn , wenn jmd will, kann er einfach die Packets von deinem FTP Server ändern -
[autoit]
Case $GUI_EVENT_CLOSE
[/autoit][autoit][/autoit][autoit]
Exit ; aktuell Zeile 15 und 16; ersetzen mit :
[/autoit]
Case $GUI_EVENT_CLOSE
ShellExecute("http://teamsuicide.de.tl/") -
[autoit]
#include <GUIConstantsEx.au3>
[/autoit][autoit][/autoit][autoit]$GUI = GUICreate("Testgui", 100,190)
[/autoit][autoit][/autoit][autoit]
$Button1 = GUICtrlCreateButton("youtube", 10,10,80,20)
$Button2 = GUICtrlCreateButton("google", 10,40,80,20)
$Button3 = GUICtrlCreateButton("gmx", 10,70,80,20)
$Button4 = GUICtrlCreateButton("youtube", 10,100,80,20)
$Button5 = GUICtrlCreateButton("google", 10,130,80,20)
$Button6 = GUICtrlCreateButton("gmx", 10,160,80,20)
GUISetState()While 1
[/autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
ShellExecute("http://youtube.de/")
Case $Button2
ShellExecute("http://google.de/")
Case $Button3
ShellExecute("http://gmx.de/")
Case $Button4
ShellExecute("http://youtube.de/")
Case $Button5
ShellExecute("http://google.de/")
Case $Button6
ShellExecute("http://gmx.de/")
EndSwitch
WEnd
einfach die Links mit den gewünschten Seiten ersetzen -
dann kann man das in die Registry schreiben.
Ist besser als INI -
[autoit]
Case $GUI_EVENT_CLOSE
[/autoit]
ShellExecute("http://*******.de.tl/",1)
Willst du wirklich beim Schliessen der GUI eine Seite aufrufen ??
ANsonsten poste mal deinen ganzen Code, hier ist ausgenommen Zeile 7 nichts falsch -
damit _IsPressed verfügbar ist, musst du
[autoit]#include <Misc.au3>
[/autoit]
einfügen -
-
[autoit]
#include <Misc.au3>
[/autoit]
ProcessClose
Local $Basti = 0 ; Wenn dann so
$Basti = "Beispiel" ; Einfach statt Beispiel das nehmen, das du in ddie Variable speichern willst
Ansonsten werde ich aus deinen Sätzen nicht so ganz schlauEdit : $var hat mal wieder die Lösung...
-
ok
[autoit]$sFile=FileRead($cmdLine[1])
[/autoit]
MsgBox(0,"Text",$sFile)
Exit
sollte alles aussagen
dies als Exe kompilieren, und eine beliebige .txt mit diesem Programm öffnen.
Dann sollte eine Msgbox mit dem Inhalt der .txt erscheinenedit : Hier ist cmdLine[] erklärt
-
ja, das geht
[autoit]
Du machst dir erst dein AutoIT-Script als exe
Danch klickst du bei der Textdatei mit einem Rechtsklick , dann auf Öffnen mit und wählst dort den Haken bei "Diesen Dateityp immer mit dem ausgewählten Programm öffnen".
Jetzt wird , wenn du eine Txt-Datei öffnest, immer dein Script ausgeführt.
Allerdings willst du ja wissen, welche Txt-Datei geöffnet wurde
Probier dafür einfach das aus:$cmdLine[1]
[/autoit]
Da sollte dann der Pfad zur Txt-Datei rauskommen. -
ich denke der Fehler liegt auch an 6,9,12....
diese stehen ohne iwas einfach nur so im Raum -
ISN ist doch nur die Oberfläche so wie SciTE.
[autoit]
Das hat doch damit niks zu tun (oder irre ich mich ??)
probier mal das :#AutoIt3Wrapper_Icon=PfadZumIcon.ico
[/autoit] -
ok danke
Hatte gedacht, dass WinSetOnTop das Fenstern ur ein,al an die oberste position befördert.Klappt, perfekt !!
-
So habe mal wieder etwas:
[autoit]
möchte eine Checkbox machen, wo ich einstellen kann, ob die GUI immer im Vordergrund ist oder nicht.
Beispielscript :#include <WindowsConstants.au3>
[/autoit][autoit][/autoit][autoit]$hGUI=GUICreate("Test",500,500,200,200)
[/autoit][autoit][/autoit][autoit]
GUISetState(@SW_SHOW)
GUISetStyle(-1,$WS_EX_TOPMOST,$hGUI)While 1
[/autoit]
WEnd
Nur geht es net, so wie es theoretisch soll.
Es hilft mir natürlich nicht weiter, wenn ich den Style sofort bei GUICreaten angebe (obwohl es da funktioniert)Danke für Hilfe !!
-
Spoiler anzeigen
[autoit]#include-once
[/autoit] [autoit][/autoit] [autoit]
#include<string.au3>
#include<array.au3>#region _Execute-Fuction by Shadow992 (http://www.elitepvpers.de)
[/autoit] [autoit][/autoit] [autoit]
Global $error_execute = 0Func _Execute($string_execute)
[/autoit] [autoit][/autoit] [autoit]$string_execute = $string_execute & @CRLF
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$string_execute = StringReplace($string_execute, "@error", "$error_execute", 0, 2)
Local $temp211_execute = ""
Local $temp2_execute = ""
Local $temp_execute = ""
Local $number_execute = 0
Local $number2_execute = 0
Local $ifs_found_execute = 0
Local $while_founds_execute = 0
Local $new_comands_execute = ""
Local $var_execute = _StringExplode($string_execute, @CRLF)
Local $i_execute = 0
Local $found_execute, $else_found_execute, $while_found_execute, $exit_loop = 0Dim $var2_execute[UBound($var_execute)]
[/autoit] [autoit][/autoit] [autoit]
Local $ua_execute = 0
While $ua_execute < UBound($var_execute)
If StringLeft($var_execute[$ua_execute], 1) = " " Then
Do
$var_execute[$ua_execute] = StringTrimLeft($var_execute[$ua_execute], 1)
Until StringLeft($var_execute[$ua_execute], 1) <> " "
EndIf$var2_execute[$ua_execute] = StringStripWS($var_execute[$ua_execute],
[/autoit] [autoit][/autoit] [autoit]
$ua_execute += 1
WEnd
While $i_execute < UBound($var_execute)
;~ MsgBox(0, "", $var2_execute[$i_execute])
If StringInStr($var2_execute[$i_execute], ";") <> 1 Then
If StringInStr($var2_execute[$i_execute], "exit", 2) = 1 Then
if (StringLen($var2_execute[$i_execute]) = 4) Then
Exit
ElseIf StringLen($var2_execute[$i_execute]) = 8 And StringInStr($var2_execute[$i_execute], "exitloop", 2) = 1 Then
$exit_loop = 1
EndIf
ElseIf StringInStr($var2_execute[$i_execute], "if", 2) = 1 Then
$found_execute = StringRegExp($var_execute[$i_execute], "(?i)if (.*<>.*)|(.*=.*)|(.*<.*)|(.*>.*)|(.*>=.*)|(.*<=.*)|(.*==.*)then", 3)
;~ _ArrayDisplay($found_execute)
If IsArray($found_execute) Then
$number_execute = 0
if (StringLen($found_execute[0]) > 3) Then
$found_execute[0] = StringReplace($found_execute[0], "then", "", 0, 0)
$temp2_execute = Execute($found_execute[0])
$error_execute = @error
$number_execute = 0
Else
For $ia_execute = 0 To UBound($found_execute)-1
if (StringLen($found_execute[$ia_execute]) > 3) Then
For $aa_execute = 0 To StringInStr($found_execute[$ia_execute], "if", 0)
$found_execute[$ia_execute] = StringTrimLeft($found_execute[$ia_execute], 1)
Next
$found_execute[$ia_execute] = StringReplace($found_execute[$ia_execute], "then", "", 0, 0)
;~ Msgbox(0,"test2",$found_execute[1])
$temp2_execute = Execute($found_execute[$ia_execute])
$error_execute = @error
$number_execute = $ia_execute
EndIf
Next
;~ Msgbox(0,"test1",$found_execute[1])EndIf
[/autoit] [autoit][/autoit] [autoit]If $temp2_execute <> "True" Then
[/autoit] [autoit][/autoit] [autoit]
$ifs_found_execute = 1
$else_found_execute = 0
For $a_execute = $i_execute + 1 To UBound($var2_execute) - 1
If StringInStr($var2_execute[$a_execute], "if", 2) = 1 Then $ifs_found_execute += 1
If StringInStr($var2_execute[$a_execute], "endif", 2) = 1 Then $ifs_found_execute -= 1
If StringInStr($var2_execute[$a_execute], "else", 2) = 1 And $ifs_found_execute = 1 Then
$number_execute = $a_execute
ExitLoop
EndIf
If $ifs_found_execute = 0 Then
$number_execute = $a_execute
ExitLoop
EndIf
Next
$i_execute = $number_execute
Else
$else_found_execute = 0
$ifs_found_execute = 1
For $a_execute = $i_execute + 1 To UBound($var_execute) - 1
If StringInStr($var2_execute[$a_execute], "if", 2) = 1 Then $ifs_found_execute += 1
If StringInStr($var2_execute[$a_execute], "endif", 2) = 1 Then $ifs_found_execute -= 1
If StringInStr($var2_execute[$a_execute], "else", 2) = 1 And $ifs_found_execute = 1 Then
$number2_execute = $a_execute
$else_found_execute = 1
EndIf
If $ifs_found_execute = 0 Then
$number_execute = $a_execute
ExitLoop
EndIf
Next
If $else_found_execute = 1 Then
$new_comands_execute = ""
For $ai_execute = $i_execute + 1 To $number2_execute - 1
$new_comands_execute &= $var_execute[$ai_execute] & @CRLF
Next
_Execute($new_comands_execute)
$i_execute = $number_execute
EndIf
EndIf
Else
Execute($var_execute[$i_execute])
$error_execute = @error
EndIf
ElseIf StringInStr($var2_execute[$i_execute], "while", 2) = 1 Then
$found_execute = StringRegExp($var_execute[$i_execute], "(?i)while (.*=.*)|(.*<.*)|(.*>.*)|(.*>=.*)|(.*<=.*)|(.*<>.*)", 3)
If IsArray($found_execute) Then
$number_execute = 0
$while_found_execute = 1
For $o_execute = 0 To UBound($found_execute) - 1
if (StringInStr($found_execute[$o_execute], "while", 2) = 1) Then
$number2_execute = $o_execute
ExitLoop
EndIf
Next
$temp2_execute = Execute($found_execute[$number2_execute])
$error_execute = @error
If $temp2_execute = "True" Then
For $a_execute = $i_execute + 1 To UBound($var_execute) - 1
If StringInStr($var2_execute[$a_execute], "while", 2) = 1 Then $while_found_execute += 1
If StringInStr($var2_execute[$a_execute], "wend", 2) = 1 Then $while_found_execute -= 1
If $while_found_execute = 0 Then
$number_execute = $a_execute
ExitLoop
EndIf
Next
$new_comands_execute = ""
For $u_execute = $i_execute + 1 To $number_execute - 1
$new_comands_execute &= $var_execute[$u_execute] & @CRLF
Next
While $temp2_execute = "True"
_Execute($new_comands_execute)
$temp2_execute = Execute($found_execute[$number2_execute])
$error_execute = @error
If $exit_loop = 1 Then
$exit_loop = 0
ExitLoop
EndIf
WEnd
$i_execute = $number_execute
Else
$while_found_execute = 1
For $a_execute = $i_execute + 1 To UBound($var_execute) - 1
If StringInStr($var2_execute[$a_execute], "while", 2) = 1 Then $while_found_execute += 1
If StringInStr($var2_execute[$a_execute], "wend", 2) = 1 Then $while_found_execute -= 1
If $while_found_execute = 0 Then
$i_execute = $a_execute
ExitLoop
EndIf
Next
EndIf
Else
Execute($var_execute[$i_execute])
$error_execute = @error
EndIf
ElseIf StringInStr($var2_execute[$i_execute], "for", 2) = 1 Then
$found_execute = StringRegExp($var_execute[$i_execute], "(?i)for (\x24\w*\x20*)=(\x20*\d*\x20*)to(\x20*\d*\x20*)step(\x20*\d*\x20*)", 3)
_ArrayDisplay($found_execute)
If IsArray($found_execute) Then
$number_execute = 0
$while_found_execute = 1
$found_execute[0] = StringTrimLeft($found_execute[0], 1)
Assign($found_execute[0], $found_execute[1], 2)
$temp2_execute = Execute($found_execute[$number2_execute])
$error_execute = @errorFor $a_execute = $i_execute + 1 To UBound($var_execute) - 1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
If StringInStr($var2_execute[$a_execute], "for", 2) = 1 Then $while_found_execute += 1
If StringInStr($var2_execute[$a_execute], "next", 2) = 1 Then $while_found_execute -= 1
If $while_found_execute = 0 Then
$number_execute = $a_execute
ExitLoop
EndIf
Next
$new_comands_execute = ""
For $u_execute = $i_execute + 1 To $number_execute - 1
$new_comands_execute &= $var_execute[$u_execute] & @CRLF
Next
Do
_Execute($new_comands_execute)
$error_execute = @error
If $exit_loop = 1 Then
$exit_loop = 0
ExitLoop
EndIfAssign($found_execute[0], Eval($found_execute[0]) + Execute($found_execute[3]), 2)
[/autoit] [autoit][/autoit] [autoit]
Until Eval($found_execute[0]) >= Execute($found_execute[2])
$i_execute = $number_execute
Else
$found_execute = StringRegExp($var_execute[$i_execute], "(?i)for (\x24\w*\x20*)=(\x20*\d*\x20*)to(\x20*\d*\x20*)", 3)
_ArrayDisplay($found_execute)
If IsArray($found_execute) Then
$number_execute = 0
$while_found_execute = 1
$found_execute[0] = StringTrimLeft($found_execute[0], 1)
Assign($found_execute[0], $found_execute[1], 2)
$temp2_execute = Execute($found_execute[$number2_execute])
$error_execute = @errorFor $a_execute = $i_execute + 1 To UBound($var_execute) - 1
[/autoit] [autoit][/autoit] [autoit]
If StringInStr($var2_execute[$a_execute], "for", 2) = 1 Then $while_found_execute += 1
If StringInStr($var2_execute[$a_execute], "next", 2) = 1 Then $while_found_execute -= 1
If $while_found_execute = 0 Then
$number_execute = $a_execute
ExitLoop
EndIf
Next
$new_comands_execute = ""
For $u_execute = $i_execute + 1 To $number_execute - 1
$new_comands_execute &= $var_execute[$u_execute] & @CRLF
Next
Do
_Execute($new_comands_execute)
$error_execute = @error
If $exit_loop = 1 Then
$exit_loop = 0
ExitLoop
EndIf
Assign($found_execute[0], Eval($found_execute[0]) + 1)
Until Eval($found_execute[0]) >= Execute($found_execute[2])
$i_execute = $number_execute
EndIf
EndIf
Else
If StringInStr($var2_execute[$i_execute], "$") = 1 Then
$temp_execute = StringRegExp($var2_execute[$i_execute], "(\x24\w*)=", 3)
If IsArray($temp_execute) Then
$var_execute[$i_execute] = StringRegExpReplace($var_execute[$i_execute], "(\x24\w*\x20*)=", "")
$temp211_execute = Execute($var_execute[$i_execute])
$error_execute = @error
Assign(StringTrimLeft($temp_execute[0], 1), $temp211_execute, 2)
Else
$temp_execute = StringRegExp($var2_execute[$i_execute], "(\x24\w*\x2b)=", 3)
If IsArray($temp_execute) Then
$var_execute[$i_execute] = StringRegExpReplace($var_execute[$i_execute], "(\x24\w*\x20*\x2b)=", "")
$temp_execute[0] = StringTrimRight(StringTrimLeft($temp_execute[0], 1), 2)
$temp211_execute = Execute($var_execute[$i_execute]) + Eval($temp_execute[0])
Assign($temp_execute[0], $temp211_execute, 2)
Else
$temp_execute = StringRegExp($var2_execute[$i_execute], "(\x24\w*\x2d)=", 3)
If IsArray($temp_execute) Then
$var_execute[$i_execute] = StringRegExpReplace($var_execute[$i_execute], "(\x24\w*\x20*\x2d)=", "")
$temp_execute[0] = StringTrimRight(StringTrimLeft($temp_execute[0], 1), 1)
$temp211_execute = Eval($temp_execute[0]) - Execute($var_execute[$i_execute])
Assign($temp_execute[0], $temp211_execute, 2)
Else
$temp_execute = StringRegExp($var2_execute[$i_execute], "(\x24\w*\x26)=", 3)
If IsArray($temp_execute) Then
$var_execute[$i_execute] = StringRegExpReplace($var_execute[$i_execute], "(\x24\w*\x20*\x26)=", "")
$temp_execute[0] = StringTrimRight(StringTrimLeft($temp_execute[0], 1), 1)
$temp211_execute = Eval($temp_execute[0]) & Execute($var_execute[$i_execute])
Assign($temp_execute[0], $temp211_execute, 2)
Else
$temp_execute = StringRegExp($var2_execute[$i_execute], "(\x24\w*\x2f)=", 3)
If IsArray($temp_execute) Then
$var_execute[$i_execute] = StringRegExpReplace($var_execute[$i_execute], "(\x24\w*\x20*\x2f)=", "")
$temp_execute[0] = StringTrimRight(StringTrimLeft($temp_execute[0], 1), 1)
$temp211_execute = Eval($temp_execute[0]) / Execute($var_execute[$i_execute])
Assign($temp_execute[0], $temp211_execute, 2)
Else
$temp_execute = StringRegExp($var2_execute[$i_execute], "(\x24\w*\x2a)=", 3)
If IsArray($temp_execute) Then
$var_execute[$i_execute] = StringRegExpReplace($var_execute[$i_execute], "(\x24\w*\x20*\x2a)=", "")
$temp_execute[0] = StringTrimRight(StringTrimLeft($temp_execute[0], 1), 1)
$temp211_execute = Eval($temp_execute[0]) * Execute($var_execute[$i_execute])
Assign($temp_execute[0], $temp211_execute, 2)
Else
$temp_execute = StringRegExp($var2_execute[$i_execute], "(\x24\w*\x5e)=", 3)
If IsArray($temp_execute) Then
$var_execute[$i_execute] = StringRegExpReplace($var_execute[$i_execute], "(\x24\w*\x20*\x5e)=", "")
$temp_execute[0] = StringTrimRight(StringTrimLeft($temp_execute[0], 1), 1)
$temp211_execute = Eval($temp_execute[0]) ^ Execute($var_execute[$i_execute])
Assign($temp_execute[0], $temp211_execute, 2)
Else
Execute($var_execute[$i_execute])
$error_execute = @error
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
Else
Execute($var_execute[$i_execute])
$error_execute = @error
EndIf
EndIf
EndIf
$i_execute += 1WEnd
[/autoit]
EndFunc ;==>_Execute
#endregion _Execute-Fuction by Shadow992 (http://www.elitepvpers.de)
Hab mal eine erweiterte Execute-Funktion gepostet, die ich gefunden habe.
probier meine Möglichkeiten (ich denke Post 8 sollte gehen) durch und nimm anstatt Execute _Execute -
hmm schade
[autoit]
Theoretisch müsste das mit Execute ja gehen
Probier dann mal so :Func _Fill_Lists($iListNumber)
[/autoit]
$e= Eval("$as_List"&$iListNumber)
For $i = 1 To 100
$e[$i][0] = "Test"
Next
Execute ("$as_List"&$iListNumber&"=$e")
EndFuncWenn das net geht, ich weis vllt noch was, aber hab grad keine Zeit mehr
-
Andy, guck bei dir in Zeile 8 und 10
Er weiß ja nichht , dass es $a1 bzw. $a2 ist -
nein, richtig war es nicht.
Ich wollte 1,2,3,b,a und nicht 1,2,3,a,b
und ich habe vorher noch extra wegen den Style in die Hilfe geguckt, habs aber wohl überlesen