Gib dann einfach deinen wert per Return $variable zurück
aufrufen kannst du die funktion ja per $variable = _DeineFunktion()
Padmak
Gib dann einfach deinen wert per Return $variable zurück
aufrufen kannst du die funktion ja per $variable = _DeineFunktion()
Padmak
Alles anzeigenHi,
hier mal ein Bsp. wie es einfacher geht, brauchst es für den Rest nur analog zu machen:Vorher
[autoit]While 1 ; -> Linie 403
[/autoit]
Send("^c")
$sMeldungsText1 = ClipGet()
Send("{UP}")
Send("^c")
$sMeldungsText2 = ClipGet()
Send("{UP }")
Send("^c")
$sMeldungsText3 = ClipGet()
Send("{UP }")
Send("^c")
$sMeldungsText4 = ClipGet()
Send("{UP }")
Send("^c")
$sMeldungsText5 = ClipGet()
Send("{UP }")
Send("^c")
$sMeldungsText6 = ClipGet()
Send("{UP }")
Send("^c")
$sMeldungsText7 = ClipGet()
Send("{UP }")
Send("^c")
$sMeldungsText8 = ClipGet()
Send("{UP }")
Send("^c")
$sMeldungsText9 = ClipGet()
Send("{UP }")
Send("^c")
$sMeldungsText10 = ClipGet()
Send("{UP }")
Send("^c")
$sMeldungsText11 = ClipGet()
Send("{UP }")
Send("^c")
$sMeldungsText12 = ClipGet()
Send("{UP }")
Send("^c")
$sMeldungsText13 = ClipGet()
Send("{UP }")
Send("^c")
$sMeldungsText14 = ClipGet()
Send("{UP }")
Send("^c")
$sMeldungsText15 = ClipGet()
Send("{UP }")
Send("^c")
$sMeldungsText16 = ClipGet()
Send("{UP }")
Send("^c")
$sMeldungsText17 = ClipGet()
Send("{UP }")
Send("^c")
$sMeldungsText18 = ClipGet()
Send("{UP }")
Send("^c")
$sMeldungsText19 = ClipGet()
Send("{UP }")
Send("^c")
$sMeldungsText20 = ClipGet()
If $iniAusgangsPosition = 1 Then Send("{down 19}")
BlockInput(0)
Dim $avMeldungsText[20]
$avMeldungsText[0] = $sMeldungsText1
$avMeldungsText[1] = $sMeldungsText2
$avMeldungsText[2] = $sMeldungsText3
$avMeldungsText[3] = $sMeldungsText4
$avMeldungsText[4] = $sMeldungsText5
$avMeldungsText[5] = $sMeldungsText6
$avMeldungsText[6] = $sMeldungsText7
$avMeldungsText[7] = $sMeldungsText8
$avMeldungsText[8] = $sMeldungsText9
$avMeldungsText[9] = $sMeldungsText10
$avMeldungsText[10] = $sMeldungsText11
$avMeldungsText[11] = $sMeldungsText12
$avMeldungsText[12] = $sMeldungsText13
$avMeldungsText[13] = $sMeldungsText14
$avMeldungsText[14] = $sMeldungsText15
$avMeldungsText[15] = $sMeldungsText16
$avMeldungsText[16] = $sMeldungsText17
$avMeldungsText[17] = $sMeldungsText18
$avMeldungsText[18] = $sMeldungsText19
$avMeldungsText[19] = $sMeldungsText20Nachher
[autoit]While 1 ; -> Linie 403
[/autoit]
Global $avMeldungsText[20]
Send("^c")
$avMeldungsText[0] = ClipGet()
For $i = 1 To UBound($avMeldungsText) -1
Send("{UP}")
Send("^c")
$avMeldungsText[$i] = ClipGet()
Next
wie kann ich das aber mit einem string machen??? (jeder Text in ein separates String)
Global $sMeldungsText1, $sMeldungsText2, $sMeldungsText3, $sMeldungsText4, $sMeldungsText5, $sMeldungsText6, $sMeldungsText7, $sMeldungsText8, $sMeldungsText9, $sMeldungsText10 = 0
Global $sMeldungsText11, $sMeldungsText12, $sMeldungsText13, $sMeldungsText14, $sMeldungsText15, $sMeldungsText16, $sMeldungsText17, $sMeldungsText18, $sMeldungsText19, $sMeldungsText20 = 0
global $sMeldungsText =0
For $i = 1 To 20($sMeldungsText) -1
Send("{UP}")
Send("^c")
$sMeldungsText[$i] = ClipGet()
MsgBox("","$sMeldungsText["&$i"]",$sMeldungsText[$i])
Next
Ich versteh nicht, wozu du dauernd deine 20 Meldungstextvariablen erstellen willst. Ein Array mit 20 Elementen tuts doch.
Du machst es dir viel zu kompliziert . Das Beispiel von Bugfix ist doch schon gut. Du mußt die Meldung doch nicht in einem String haben. In BugFix´s Beispiel hast du dann die Meldungen in den 20 Elementen des Arrays . Damit kannst du genausogut arbeiten als wenn du jede einzelne Meldung in ein String übergibst .
Ich denke du weißt garnicht wirklich was ein Array ist. Und wie man auf die Einzelnen Elemente zugreift.
PS: Habe deine PN bekommen , wenn ich heute Nachmittag Zeit habe, werde ich mit das ganze mal anschauen . Ich denke von deine 800 Zeilen Code werden nach der Optimierung nur wenige übrigbleiben. Ich schätze mal unter 80 Zeilen.
ja schon richtig
aber ich komm dann nicht mehr weiter wenn ich dem array den satdtnamen ($sSuchtext) suchen will
_arraysearch funzt nicht !
Dann machst du die Abfrage einfach mit den einzelnen Elementen des Arrays . Einfach in eine Schleife packen. Und ich denke du kannst auch den Stadtnamen direkt suchen. Schau dir mal die Array UDF an . Außerdem hat BugFix super Array Funktionen in seiner ArrayMore.UDF . Findest du in seiner Signatur .
Edit : Wenn du einen Teilstring (also dein 'STADTNAME") in einem Array suchen willst dann benutzt du am besten _ArrayFindAll. Damit bekommst du als Rückgabe ein Array mit den Indexnummer/n in welchen Element/en) dein Suchstring gefunden wurde . Schau dir mal die Hilfe dazu an .
ja danke - ich versuchs mal
ist _ArrayFindAll das selbe wie _Array2DSearch ? (hab die funktion _ArrayFindAll nicht gefunden)
mit _Array2DSearch funktionierts nicht (@error = 8 / rückgabewert =0
;#include <ArrayMore.au3>
;_Array2DSearch(ByRef $avArray, $vWhat2Find [, $iDim=-1 [, $iStart=0 [, $iEnd=0 [, $iCaseSense=0 [, $fPartialSearch=False [, $1stFound=False]]]]]])
$search = _Array2DSearch( $avMeldungsText,$sSuchtext,-1,0,Ubound($avMeldungsText),0,True)
if @error then MsgBox("","error",@error)
_ArrayDisplay($search,"Ergebniss von _Array2DSearch")
MsgBox("","Ergebniss $search",$search)
hat sich erledigt funktioniert doch
@error = 8 $iEnd is out of range
jetzt auf 0 gesetzt
Ich sehen überhauptnicht wo du ein 2D Array hast . Eine vergleichbare Funktion für 1D Arrays wäre _ArraySearch . Du willst aber alle Vorkommen finden . Also besser _ArrayFindAll nehmen .
_ArraySearch liefert nur das erste Vorkommen des Suchstrings zurück . Bei _Array2DSearch kann ich es dir jetzt nicht aus dem Kopf sagen. Habe auch keine Zeit nachzusehen, bin gerade am Aufsetzen von 15 Rechnern
Ich sehen überhauptnicht wo du ein 2D Array hast . Eine vergleichbare Funktion für 1D Arrays wäre _ArraySearch . Du willst aber alle Vorkommen finden . Also besser _ArrayFindAll nehmen .
und wo gibts dieses _ArrayFindAll ?????
Schon mal in der Hilfe nachgesehen ?