UDF selber erstellen - mit String möglich?

  • Hallo,

    versuche gerade ein UDF selber zu erstellen. Im Tuorial ist nur ein Beispiel mit Arrays die bearbeitet werden.

    Kann ich in einer UDF auch String's bearbeiten???

    • Offizieller Beitrag

    In einer UDF kannst du alles was du willst bearbeiten .

  • also ich will die if-Abfrage in ein Udf umwandeln:

    [autoit]

    If StringInStr($sMeldungsText10, $sSuchtext) Then
    If $iniDiagnose = 1 Then MsgBox("", "text10 ", $sMeldungsText10, 1)
    $array10 = StringSplit($sMeldungsText10, "/")
    $afSuchtext[10] = 1;
    If $array10[0] > 1 Then

    [/autoit][autoit][/autoit][autoit]

    $sMeldungsText = $sMeldungsText10
    $array = $array10
    EndIf
    EndIf

    [/autoit]

    insgesamt soll die funktion merfach genutzt werden ($sMeldungsText1 bis $sMeldungsText10)

    Einmal editiert, zuletzt von dominik (7. Februar 2009 um 18:51)

    • Offizieller Beitrag

    Wenn Du eine Funktion erstellen willst, solltest Du Dir als Erstes überlegen, welche Werte will ich der Funktion übergeben (was wird innerhalb der Funktion an Werten aus dem Hauptprogramm benötigt) und als Zweites, welche Werte (die innerhalb der Funktion verändert werden) will ich wieder an das Hauptprogramm (bzw. an die aufrufende Funktion) zurückgeben.
    Dazu schaust Du Dir am besten mal den Abschnitt "Func...Return...EndFunc" aus der Hilfe an.

  • ich glaube du hast nicht ganz verstanden was eine UDF ist...
    du meinst glaub ich eine funktion?
    Kann gerade nix machen am pc sorry^^
    ich probiers dann nachher mal

    UDF = User Defined Functions (glaub ich^^)
    einfach eine datei in der mehrere funktionen stehen
    die du dann per #include in dein script einbinden kannst

    Padmak

  • ich glaube du hast nicht ganz verstanden was eine UDF ist...
    du meinst glaub ich eine funktion?
    Kann gerade nix machen am pc sorry^^
    ich probiers dann nachher mal

    ja richtig -- sorry
    ich muss die Func...Return...EndFunc - Funktion benutzen

    ich versuch auch mal was zu machen

    • Offizieller Beitrag

    Poste dein Scipt und dann kann man dir auch helfen. Den Code den du bis jetzt gepostet hast , braucht keine Schleife.

  • aber ich hätts gern in irgend einer "verkürzten" form, sonst wird das script ziemlich groß und unübersichtlich

    • Offizieller Beitrag

    Noch mal . Bei diesem Code braucht man keine Schleifen .

    [autoit]

    If StringInStr($sMeldungsText10, $sSuchtext) Then
    If $iniDiagnose = 1 Then MsgBox("", "text10 ", $sMeldungsText10, 1)
    $array10 = StringSplit($sMeldungsText10, "/")
    $afSuchtext[10] = 1;
    If $array10[0] > 1 Then

    [/autoit][autoit][/autoit][autoit]

    $sMeldungsText = $sMeldungsText10
    $array = $array10
    EndIf
    EndIf

    [/autoit][autoit][/autoit][autoit][/autoit]


    Also entweder du wist ein bischen konkreter , oder dir ist nicht zu helfen .

  • Spoiler anzeigen
    [autoit]

    #include "SoundGetSetQuery.au3"
    #include <GUIConstants.au3>
    #include <ie.au3>
    #include <Array.au3>
    #include <IE.au3>
    #include "RestrictControlRegExp.au3"

    [/autoit] [autoit][/autoit] [autoit]

    ;#NoTrayIcon
    $iZaehlerSchleifenDurchgang = 0
    $nichtA= 0
    While 1 ; -> Linie 721

    [/autoit] [autoit][/autoit] [autoit]

    While $iZaehlerSchleifenDurchgang <= 0 ; -> Linie 678 /// $iZaehlerSchleifenDurchgang >0 => zählt schleifendurchgänge , nur ein durchgang mögliche (sihe Linie 591)
    MsgBox("","$iZaehlerSchleifenDurchgang",$iZaehlerSchleifenDurchgang)
    While 1 ; -> Linie 405

    Dim $sMeldungsText1, $sMeldungsText2, $sMeldungsText3, $sMeldungsText4, $sMeldungsText5, $sMeldungsText6, $sMeldungsText7, $sMeldungsText8, $sMeldungsText9, $sMeldungsText10 = 0
    Dim $sMeldungsText11, $sMeldungsText12, $sMeldungsText13, $sMeldungsText14, $sMeldungsText15, $sMeldungsText16, $sMeldungsText17, $sMeldungsText18, $sMeldungsText19, $sMeldungsText20 = 0
    Global $iniTelefon = IniRead(@ScriptDir & "\Variablen.ini", "Telefon", "anrufen", "1") ; >> 0= kein anrufen / 1= anrufen aktiviert >>>>>> d.h. wenn nicht ausgeschalten "1"
    Global $iniGoogle = IniRead(@ScriptDir & "\Variablen.ini", "Google", "Start", "NichtGefunden") ;>> 0= kein google / 1= google aktiviert
    Global $iniSound = IniRead(@ScriptDir & "\Variablen.ini", "Sound", "Eingeschaltet", "1") ; >> 0= kein sound / 1= sound aktiviert
    Global $iniAusgangsPosition = IniRead(@ScriptDir & "\Variablen.ini", "Ausgangsposition", "zurück", "NichtGefunden")
    Global $iniSuchausWahl = IniRead(@ScriptDir & "\Variablen.ini", "Suchauswahl", "ein", "NichtGefunden")
    Global $iniDiagnose = IniRead(@ScriptDir & "\Variablen.ini", "Diagnose", "ein", "NichtGefunden")
    Global $iniLautstaerke = IniRead(@ScriptDir & "\Variablen.ini", "Lautstärke", "Prozent", "30") ; lautstärke in % / keine eingabe => "10" %

    [/autoit] [autoit][/autoit] [autoit]

    ;if $iniDiagnose =1 then MsgBox("","$iniSound",$iniSound)
    If $iniDiagnose = 1 Then MsgBox("", "31 $iniTelefon", $iniTelefon, 1)
    ;.........................................................................................................................
    AutoItSetOption("WinTitleMatchMode", 2)
    WinActivate("Monitor")
    $fMausClick = 0
    Send("{ESC} ")
    Sleep(200)
    If WinExists("Speichern unter", "") Then
    WinActivate("Speichern unter")
    Send("{ESC} ")
    EndIf
    If $iniSuchausWahl = 1 Then
    MsgBox("", "39 Achtung", "Meldung für Suchbeginn" & @CRLF & "im Monitor anklicken !!!", 5)
    WinActivate("Monitor")
    Send("^c")
    $fMausClick = 1
    EndIf
    If WinExists("poc32", "Es wurde kein Eintrag ausgewählt") Then
    MsgBox("", "45 Fehler", "Es wurde kein Eintrag ausgewählt", 3)
    BlockInput(1)
    Send("{enter}")
    Sleep(200)
    MouseClick("left", 90, 127, 1, 0)
    EndIf
    ;msgbox("","50","nach if",3)
    BlockInput(1)
    If Not $fMausClick = 1 Then MouseClick("left", 90, 127, 1, 0) ;MouseClick ( "left" [, x, y [, clicks [, speed ]]] )
    ;msgbox("","53","nach maus click",3)
    If $iniDiagnose = 1 Then MsgBox("", "54 ", " kopie startet", 1)
    If Not $fMausClick = 1 Then Send("{PGDN 30}")
    ;msgbox("","56","nach send PGDN 30",3)
    While 1 ; -> Linie 403
    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] = $sMeldungsText20
    WinSetState("Monitor", "", @SW_MINIMIZE)
    ;------------------------------------------------------------------------------------------------------------------------------------
    ;--------------------------------------------------------------------------------------------------------------------------------------
    ;_ArrayDisplay($avMeldungsText,"$avMeldungsText")

    Dim $sMeldungsText
    $pos0 = _ArraySearch($avMeldungsText, "STADTNAME", 0, 0, 0, True)
    If Not @error Then
    ;Msgbox(0,'150',' Eintrag "STADTNAME" gefunden' & $pos0)
    Else
    $sMeldungsText = $sMeldungsText1

    EndIf
    ;endif
    ;########################### überprüft welche meldung(en) "STADTNAME" enthalten => ergebnis in '$afSuchtextA' ########################
    ;########################### üübernimmt nur längste nachricht >5 zeilen (if $array1[0] >5 then) ########################

    $sSuchtext = "STADTNAME"

    Dim $array[1]
    $array[0] = 0
    Dim $afSuchtextA[22]
    $afSuchtextA[1] = 0
    $afSuchtextA[2] = 0
    $afSuchtextA[3] = 0
    $afSuchtextA[4] = 0
    $afSuchtextA[5] = 0
    $afSuchtextA[6] = 0
    $afSuchtextA[7] = 0
    $afSuchtextA[8] = 0
    $afSuchtextA[9] = 0
    $afSuchtextA[10] = 0
    $afSuchtextA[11] = 0
    $afSuchtextA[12] = 0
    $afSuchtextA[13] = 0
    $afSuchtextA[14] = 0
    $afSuchtextA[15] = 0
    $afSuchtextA[16] = 0
    $afSuchtextA[17] = 0
    $afSuchtextA[18] = 0
    $afSuchtextA[19] = 0
    $afSuchtextA[20] = 0
    $afSuchtextA[21] = 0


    ;_ArrayDisplay($afSuchtextA," _ArrayDisplay $afSuchtextA vor Durchsuche")
    If StringInStr($sMeldungsText1, $sSuchtext) Then
    If $iniDiagnose = 1 Then MsgBox("", "197 text1 ", $sMeldungsText1, 1)
    $array1 = StringSplit($sMeldungsText1, "/")
    $afSuchtextA[1] = 1 ;=>>> $afSuchtextA[1] =1 > erster Text ([1]) enthält $sSuchtext wenn '=1' gesetzt
    ;_ArrayDisplay($array1," $array1 linie 190")
    If $array1[0] > 0 Then ;üübernimmt nur längste nachricht >5 zeilen (if $array1[0] >5 then)
    ;MsgBox( "", "text1 linie 192 ", $sMeldungsText1 )
    $sMeldungsText = $sMeldungsText1
    $array = $array1
    EndIf
    EndIf
    If StringInStr($sMeldungsText2, $sSuchtext) Then
    If $iniDiagnose = 1 Then MsgBox("", "208 text2 ", $sMeldungsText2, 1)
    $array2 = StringSplit($sMeldungsText2, "/")
    $afSuchtextA[2] = 1 ;=>>> $afSuchtextA[2] =1 > 2. Text ([2]) enthält $sSuchtext wenn '=1' gesetzt
    ;_ArrayDisplay($array1," $array1 linie 201")
    If $array2[0] > 1 Then
    ;MsgBox( "", "text2 ", $sMeldungsText2 )
    $sMeldungsText = $sMeldungsText2
    $array = $array2
    EndIf
    EndIf
    If StringInStr($sMeldungsText3, $sSuchtext) Then
    If $iniDiagnose = 1 Then MsgBox("", "text3 ", $sMeldungsText3, 1)
    $array3 = StringSplit($sMeldungsText3, "/")
    $afSuchtextA[3] = 1 ;=>>> $afSuchtextA[1] =1 > erster Text ([1]) enthält $sSuchtext wenn '=1' gesetzt
    If $array3[0] > 1 Then
    ;MsgBox( "", "text3 ", $sMeldungsText3 )
    $sMeldungsText = $sMeldungsText3
    $array = $array3
    EndIf
    EndIf
    If StringInStr($sMeldungsText4, $sSuchtext) Then
    If $iniDiagnose = 1 Then MsgBox("", "text4 ", $sMeldungsText4, 1)
    $array4 = StringSplit($sMeldungsText4, "/")
    $afSuchtextA[4] = 1 ;=>>> $afSuchtextA[1] =1 > erster Text ([1]) enthält $sSuchtext wenn '=1' gesetzt

    [/autoit] [autoit][/autoit] [autoit]

    If $array4[0] > 1 Then
    ;MsgBox( "", "text4 ", $sMeldungsText4 )
    $sMeldungsText = $sMeldungsText4
    $array = $array4
    EndIf
    EndIf
    If StringInStr($sMeldungsText5, $sSuchtext) Then
    If $iniDiagnose = 1 Then MsgBox("", "text5 ", $sMeldungsText5, 1)
    $array5 = StringSplit($sMeldungsText5, "/")
    $afSuchtextA[5] = 1 ;=>>> $afSuchtextA[1] =1 > erster Text ([1]) enthält $sSuchtext wenn '=1' gesetzt

    [/autoit] [autoit][/autoit] [autoit]

    If $array5[0] > 1 Then
    ;MsgBox( "", "text5 ", $sMeldungsText5 )
    $sMeldungsText = $sMeldungsText5
    $array = $array5
    EndIf
    EndIf
    If StringInStr($sMeldungsText6, $sSuchtext) Then
    If $iniDiagnose = 1 Then MsgBox("", "text6 ", $sMeldungsText6, 1)
    $array6 = StringSplit($sMeldungsText6, "/")
    $afSuchtextA[6] = 1 ;=>>> $afSuchtextA[1] =1 > erster Text ([1]) enthält $sSuchtext wenn '=1' gesetzt

    [/autoit] [autoit][/autoit] [autoit]

    If $array6[0] > 1 Then
    ;MsgBox( "", "text6 ", $sMeldungsText6 )
    $sMeldungsText = $sMeldungsText6
    $array = $array6
    EndIf
    EndIf
    If StringInStr($sMeldungsText7, $sSuchtext) Then
    If $iniDiagnose = 1 Then MsgBox("", "text7 ", $sMeldungsText7, 1)
    $array7 = StringSplit($sMeldungsText7, "/")
    $afSuchtextA[7] = 1 ;=>>> $afSuchtextA[1] =1 > erster Text ([1]) enthält $sSuchtext wenn '=1' gesetzt

    [/autoit] [autoit][/autoit] [autoit]

    If $array7[0] > 1 Then
    ;MsgBox( "", "text7 ", $sMeldungsText7 )
    $sMeldungsText = $sMeldungsText7
    $array = $array7
    EndIf
    EndIf
    If StringInStr($sMeldungsText8, $sSuchtext) Then
    If $iniDiagnose = 1 Then MsgBox("", "text8 ", $sMeldungsText8, 1)
    $array8 = StringSplit($sMeldungsText8, "/")
    $afSuchtextA[8] = 1 ;=>>> $afSuchtextA[1] =1 > erster Text ([1]) enthält $sSuchtext wenn '=1' gesetzt

    [/autoit] [autoit][/autoit] [autoit]

    If $array8[0] > 1 Then
    ;MsgBox( "", "text8 ", $sMeldungsText8 )
    $sMeldungsText = $sMeldungsText8
    $array = $array8
    EndIf
    EndIf
    If StringInStr($sMeldungsText9, $sSuchtext) Then
    If $iniDiagnose = 1 Then MsgBox("", "text9 ", $sMeldungsText9, 1)
    $array9 = StringSplit($sMeldungsText9, "/")
    $afSuchtextA[9] = 1 ;=>>> $afSuchtextA[1] =1 > erster Text ([1]) enthält $sSuchtext wenn '=1' gesetzt
    If $array9[0] > 1 Then
    ;MsgBox( "", "text9 ", $sMeldungsText9 )
    $sMeldungsText = $sMeldungsText9
    $array = $array9
    EndIf
    EndIf
    If StringInStr($sMeldungsText10, $sSuchtext) Then
    If $iniDiagnose = 1 Then MsgBox("", "text10 ", $sMeldungsText10, 1)
    $array10 = StringSplit($sMeldungsText10, "/")
    $afSuchtextA[10] = 1 ;=>>> $afSuchtextA[1] =1 > erster Text ([1]) enthält $sSuchtext wenn '=1' gesetzt
    If $array10[0] > 1 Then
    ;MsgBox( "", "text10 ", $sMeldungsText10 )
    $sMeldungsText = $sMeldungsText10
    $array = $array10
    EndIf
    EndIf
    ;if $iniDiagnose =1 then _ArrayDisplay($afSuchtextA," $afSuchtextA")
    ;___________________________________________________________________

    for $r = 0 to UBound($avMeldungsText) -1
    $avMeldungsText[$r] = _ArraySearch($avMeldungsText, "STADTNAME")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    next
    ;_______________________________________________________________________________________________________
    If $iniDiagnose = 1 Then _ArrayDisplay($array, "gesamter Text bei / getrennt -> $array") ;gesamter Text bei "/" getrennt =>>> längste meldung
    Dim $avAlEinheit[1]
    $avAlEinheit[0] = 0
    If $afSuchtextA[1] = 1 Then _ArrayAdd($avAlEinheit, $avMeldungsText[0])
    If $afSuchtextA[2] = 1 Then _ArrayAdd($avAlEinheit, $avMeldungsText[1])
    If $afSuchtextA[3] = 1 Then _ArrayAdd($avAlEinheit, $avMeldungsText[2])
    If $afSuchtextA[4] = 1 Then _ArrayAdd($avAlEinheit, $avMeldungsText[3])
    If $afSuchtextA[5] = 1 Then _ArrayAdd($avAlEinheit, $avMeldungsText[4])
    If $afSuchtextA[6] = 1 Then _ArrayAdd($avAlEinheit, $avMeldungsText[5])
    If $afSuchtextA[7] = 1 Then _ArrayAdd($avAlEinheit, $avMeldungsText[6])
    If $afSuchtextA[8] = 1 Then _ArrayAdd($avAlEinheit, $avMeldungsText[7])
    If $afSuchtextA[9] = 1 Then _ArrayAdd($avAlEinheit, $avMeldungsText[8])
    If $afSuchtextA[10] = 1 Then _ArrayAdd($avAlEinheit, $avMeldungsText[9])
    If $afSuchtextA[11] = 1 Then _ArrayAdd($avAlEinheit, $avMeldungsText[10])
    If $afSuchtextA[12] = 1 Then _ArrayAdd($avAlEinheit, $avMeldungsText[11])
    If $afSuchtextA[13] = 1 Then _ArrayAdd($avAlEinheit, $avMeldungsText[12])
    If $afSuchtextA[14] = 1 Then _ArrayAdd($avAlEinheit, $avMeldungsText[13])
    If $afSuchtextA[15] = 1 Then _ArrayAdd($avAlEinheit, $avMeldungsText[14])
    If $afSuchtextA[16] = 1 Then _ArrayAdd($avAlEinheit, $avMeldungsText[15])
    If $afSuchtextA[17] = 1 Then _ArrayAdd($avAlEinheit, $avMeldungsText[16])
    If $afSuchtextA[18] = 1 Then _ArrayAdd($avAlEinheit, $avMeldungsText[17])
    If $afSuchtextA[19] = 1 Then _ArrayAdd($avAlEinheit, $avMeldungsText[18])
    If $afSuchtextA[20] = 1 Then _ArrayAdd($avAlEinheit, $avMeldungsText[19])
    If $afSuchtextA[21] = 1 Then _ArrayAdd($avAlEinheit, $avMeldungsText[20])
    _ArrayDelete($avAlEinheit, 0) ; löscht linie [0]
    _ArrayReverse($avAlEinheit) ; umgekehrte reihenfolge
    ;if $iniDiagnose =1 then _ArrayDisplay($avAlEinheit,"arraydisplay $avAlEinheit")
    ;-------------------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------
    ;_ArrayDisplay($avMeldungsText,"$avMeldungsText")
    $row = "a"
    $exit = 0
    $nichtA= 0
    If $array[0] > 0 Then ; wenn array vorhanden wird meldung im gui angezeigt
    $exit = 1
    ExitLoop
    Else ; wenn kein einsatz kann Liste mit Ausertung angezeigt werden und eine Alarmierung im google anzeigen
    $msgb = MsgBox(4, "341 Keine Meldung für"& $sSuchtext "!!", "Auswertung anzeigen ?")
    If $msgb = 6 Or $msgb = -1 Then ; ja
    _ArrayReverse($avMeldungsText) ; umgekehrte reihenfolge
    _ArrayAdd($avMeldungsText, "")
    _ArrayAdd($avMeldungsText, "")
    _ArrayAdd($avMeldungsText, "")
    _ArrayAdd($avMeldungsText, "")
    _ArrayAdd($avMeldungsText, "")
    _ArrayInsert($avMeldungsText, 25, " Keine Meldung für "& $sSuchtext "!! -> die Zeile (Adresse), die im Google geöffnet werden soll, merken !") ;in Linie 25 Text einfügen
    _ArrayDisplay($avMeldungsText, "Keine Meldung für "& $sSuchtext "!! -> Nummer der Zeile mit Meldungstext merken")

    _RegEx_RestrictControl_setup (20) ; spezial funktion
    $Form1 = GUICreate("In GoogleMaps anzeigen", 256, 157, 501, 301)
    ;GUISetOnEvent(-3, "_quit")
    $input = GUICtrlCreateInput("", 176, 32, 25, 21)
    _RegEx_RestrictControl_add ($input, "^[0-9]{0,2}$") ; Eingabe: nur ziffern 0-9 / und nur 2 stellen =>> wird während eingabe überprüft und ggf. unterbunden
    $Label1 = GUICtrlCreateLabel("Zeile eingeben", 64, 32, 108, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    $Button1 = GUICtrlCreateButton("GoogleMaps öffnen", 72, 88, 121, 33, 0)

    GUISetState(@SW_SHOW)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $input
    $input = GUICtrlRead($input)
    $row = $input
    Case $GUI_EVENT_CLOSE
    $msgbox = MsgBox(4, "363 Beenden ???", "Auswertung wirklich beenden ?")
    If $msgbox = 6 Then ; ja
    $exit = 1
    $nichtA= 1
    WinKill("In GoogleMaps anzeigen", "")
    ExitLoop
    EndIf
    If $msgbox = 7 Then GUISetState(@SW_SHOW)
    Case $Button1
    WinKill("In GoogleMaps anzeigen", "")
    ExitLoop
    EndSwitch
    WEnd

    [/autoit]


    Edit BugFix: Bitte in Zukunft Spoiler verwenden, habs hier eingefügt.

    2 Mal editiert, zuletzt von dominik (8. Februar 2009 um 10:27)

  • also ich füge bis zu 20 "meldungen"in ein string oder array ein
    die sollen alle nach dem selben schema durchsucht werden ($sSuchtext)

    und damit das ganze einfacher ist/wird und übersichtlicher hatte ich den Gedanken mit einer Funktion/Schleife das ganze zu verkürzen
    (bin nach fast 800 zeilen ein bisel tipp faul geworden ;) )

    • Offizieller Beitrag

    Hi,
    hier mal ein Bsp. wie es einfacher geht, brauchst es für den Rest nur analog zu machen:

    Vorher
    [autoit]

    While 1 ; -> Linie 403
    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] = $sMeldungsText20

    [/autoit]
    Nachher
    [autoit]

    While 1 ; -> Linie 403
    Global $avMeldungsText[20]
    Send("^c")
    $avMeldungsText[0] = ClipGet()
    For $i = 1 To UBound($avMeldungsText) -1
    Send("{UP}")
    Send("^c")
    $avMeldungsText[$i] = ClipGet()
    Next

    [/autoit]
  • also villeicht dann so ???

    Spoiler anzeigen
    [autoit]


    for $r = 0 to UBound($avMeldungsText) -1
    $avMeldungsText[$r] = _ArraySearch($avMeldungsText, "STADTNAME")

    next

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Was willst du denn als Ergebnis haben? Ein Suchergebnis oder evtl. mehrere?

    nur ein suchergebniss (ob dies meldung den Stadtnamen hat)
    und dann die wie in der if funktion

    Spoiler anzeigen
    [autoit]

    If StringInStr($sMeldungsText9, $sSuchtext) Then
    If $iniDiagnose = 1 Then MsgBox("", "text9 ", $sMeldungsText9, 1)
    $array9 = StringSplit($sMeldungsText9, "/")
    $afSuchtextA[9] = 1;=>>> $afSuchtextA[1] =1> erster Text ([1]) enthält $sSuchtext wenn '=1' gesetzt
    If $array9[0] > 1 Then
    ;MsgBox( "", "text9 ", $sMeldungsText9 )
    $sMeldungsText = $sMeldungsText9
    $array = $array9
    EndIf
    EndIf

    [/autoit]