Beiträge von diepfeile
-
-
kann man es auch so machen, dass ff nicht in einem neuen tab, sonderm im aktiven öffnet?
-
jo nice funzt. was wäre ich ohne dich *g
aber was steht denn in dieser @extended? bei mir war es entweder "0", wenn es keine koordinaten waren, oder "8" wenn es welche waren. das "@extended erweiterte Funktionsrückgabe" find ich nciht gerade aussagekräftig.
-
Code
Alles anzeigen$var = "1200,1000" ;If StringRegExp($var,"^\d{1,4}\,\d{1,4}$") Then ; $click = StringRegExp($var,"^(\d{1,4})\,(\d{1,4})$",1) ; MouseClick("left",$click[0],$click[1],1) ;EndIf If $click = StringRegExp($var,"^(\d{1,4})\,(\d{1,4})$",1) Then MouseClick("left",$click[0],$click[1],1) EndIf
das auskommentiere bsp geht. nur muss ich da zweimal die gleiche regex abfrage machen, kann man das irgendwie vereinfach, dass er direkt in der ifabfrage die daten von der regex-abfrage in einer var speichert statt sie mit dem regex ergebnis zu vergleichen?
mein ziel ist es zu prüfen ob in der variablen x- und y-wert gespeichert sind, diese soll er dann per maus klicken. -
wenn Du :classes angibst, brauchst Du doppelte [[...]]
siehe:Spoiler anzeigen
[autoit]
[/autoit]
$var = "Herbert123456789"
MsgBox(0, "a", StringRegExp($var, "^[[:alnum:]]{4,16}$"))jojo hab für mein post so lange gebraucht, da hatteste die frage schon beantwortet bevor sie gestellt war *G
muss man nicht die einzelnen sets mit "," trennen? weil irgendie geht beides
$var = "1,234,567"
MsgBox(0,"1",StringRegExp($var,"^[0-9\,]+$"))
MsgBox(0,"2",StringRegExp($var,"^[0-9,\,]+$")) -
ahh danke, das "^" und "$" waren was ich unter anderem suchte.
nicht gerade hilfreich ist, dass es eine neuere version von http://www.autoit.de/dokumentation/…tringRegExp.htm gibt, von der aber auf der seite nichts genannt wird und veraltet steht auch nicht dran. und mit google hab ich die zuerst gefunden....
aber ich suche auch noch die neue version von:
\A Entspricht jedem alphanumerischen Zeichen (a-z, A-Z, 0-9).
was anscheinend das ist:
\w Findet Buchstaben: a-z, A-Z oder Unterstrich (_).
weil \w scheint auch zahlen mit einzuschliessen. kann das jemand bestätigen?
$var = "Herbert_123"
MsgBox(0,"a",StringRegExp($var,"^\w{4,16}$"))somit ist meine frage gibt es ne neue kurzform (backshlash mit buchstabe) für nur buchstaben?
und die zeichenklassen funzen bei mir auch nicht:
$var = "Herbert123"
MsgBox(0,"a",StringRegExp($var,"^[:alnum:]{4,16}$"))
ergibt 0
aja ok muss doppelklammer sein
$var = "Herbert123"
MsgBox(0,"a",StringRegExp($var,"^[[:alnum:]]{4,16}$")) -
wie wäre es denn dann richtig?
im ersten fall möchte ich prüfen ob die variable eine zahl im raum von 0-99 ist
und im zeiten ob der string der variablen zwischen 4 und 16zeichen lang ist und nur aus buchstaben (groß und klein) und zahlen besteht -
$var = 123
MsgBox(0,"1",StringRegExp($var,"\d{1,2}"))$var = "Herbert123"
MsgBox(0,"a",StringRegExp($var,"\A{4,16}"))die erste ist wahr, obwohl die zahl doch eine ziffer zuviel hat
und die zweite sollte doch wahr statt unwahr sein oder was hab ich falsch gemacht?
-
danke für deine mühen BugFix. aber ich werd beim array im array bleiben. bringt ja nichts mit haufenweise code das array im array in ein multidimensionales zu verwandeln nur weil man eine zeile sparen will. zudem weiss ich jetzt ja, dass es zwischen den beiden einen unterschied gibt den man beim auslesen berücksichtigen muss
-
wo ist denn da dann der unterschied? und wie mach ich dann meines zu so einem?
-
C
Alles anzeigen#include <Array.au3> #include <File.au3> Dim $array _FileReadToArray("blup.cvs", $array) ;_ArrayDisplay( $array, "Whole array" ) For $i = 1 To $array[0] $array[$i] = StringSplit($array[$i], ",") Next ;_ArrayDisplay( $array[4], "Whole array" ) $pos = StringSplit("4,11",",") $test = $array[$pos[1]] $test2 = $test[$pos[2]] MsgBox(0,"blub","echo: " & $test2) Sleep(2000)
wenn ich die arrays schritt für schritt auslese gehts.
aber das sollte doch auch direkt gehen laut bsps:Code
Alles anzeigenSchauen wir uns den Inhalt des Array an: $val[0][0] = 4 ; Anzahl der eingelesenen Schlüssel-Wert Paare $val[1][0] = 'schluesselA' ; Name des Schlüssels $val[1][1] = 1 ; Wert des Schlüssels $val[2][0] = 'schluesselB' $val[2][1] = 2 $val[3][0] = 'schluesselC' $val[3][1] = 3 $val[4][0] = 'schluesselD' $val[4][1] = 4 Möchte ich jetzt auf den Wert von 'schluesselC' zugreifen, muß ich das Array nach dem Schlüssel durchsuchen und mir den zugehörigen Wert ausgeben lassen: Dim $SuchWert, $SuchSchluessel = 'schluesselC' For $i = 1 To UBound($val) -1 If $val[$i][0] = $SuchSchluessel Then $SuchWert = $val[$i][1] ExitLoop EndIf Next MsgBox(0, '', 'gesuchter Wert ist: ' & $SuchWert) Ich vergleiche also in jedem Element des Array ob der enthaltene Schlüsselname (Position[n][0]) mit meinem gesuchten Namen übereinstimmt. Wird der Schlüssel gefunden, lese ich den zugehörigen Wert aus (Position[n][1]).
da gehts doch auch mit dem direkten auslesen von mehrdimensionalen arrays.
auch bei http://wiki.autoit.de/ siehts es so aus als ob es gehen würde:C#Include <GuiListView.au3> #include <Array.au3> For $i = 0 To UBound($array,1) -1 ; $i = Element 1 (Index=0) bis Zeilen (Index= Zeilen -1) For $k = 0 To 3 ; $k Spalten-Index (im Array und im ListView-Control) _GUICtrlListViewInsertItem ($listview, $k, $array[$i][$k]) Next Nextsogar bei
Code
Alles anzeigen#include <Array.au3> Dim $array _FileReadToArray("blup.cvs", $array) ;_ArrayDisplay( $array, "Whole array" ) For $i = 1 To $array[0] $array[$i] = StringSplit($array[$i], ",") Next ;_ArrayDisplay( $array[4], "Whole array" ) $pos = StringSplit("4,11",",") MsgBox(0,"blub","echo: " & $array[4][11]) Sleep(2000)
kommt:Code: ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.: MsgBox(0,"blub","echo: " & $array[4][11]) MsgBox(0,"blub","echo: " & ^ ERROR
aber bei _ArrayDisplay( $array[4], "Whole array" ) wird es doch richtig anzeigt somit muss es doch ein mehrdimensionales array sein. -
ich versteh einfach nicht wo der fehler liegt
Code"Array variable has incorrect number of subscripts or subscript dimension range exceeded.: MsgBox(0,"blub","echo: " & $array[$pos[1]][$pos[2]]) MsgBox(0,"blub","echo: " & ^ ERROR"
das ist der code:C
Alles anzeigen#include <Array.au3> #include <File.au3> Dim $array _FileReadToArray("blup.cvs", $array) ;_ArrayDisplay( $array, "Whole array" ) For $i = 1 To $array[0] $array[$i] = StringSplit($array[$i], ",") Next ;_ArrayDisplay( $array[4], "Whole array" ) $pos = StringSplit("4,11",",") ;_ArrayDisplay( $pos, "Whole array" ) MsgBox(0,"blub","echo: " & $array[$pos[1]][$pos[2]]) Sleep(2000)
und das der inhalt der cvs:Codea,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p a,b,c,d,e,f,g,h,i,j,z,l,m,n,o,p a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,peigentlich sollte die ganze datei in eine array packen und dann darin per anderem array was auslesen und in der msgbox ausgeben was eignetlich das z seien sollte.
die _ArrayDisplay gehen nur halt das letzte nicht