Page 1 of 1

Loop erst beim zweiten treffer beenden.

Posted: 21 Jan 2019, 12:51
by KHA
Hi,
ich versuche seit stunden folgendes zu machen, bekomme es nicht hin. Wenn der Inhalt der Zeichenkette, d ist soll es beendet werden aber nicht beim ersten Fund sondern beim zweiten.
Im Beispiel sollte das endergebnis, abcd123d sein.
Gruß

Code: Select all

datei =
(
a
b
c
d
1
2
3
d
e
g
f
)
match = 0
Loop, parse, datei, `n
{
if A_Loopfield contains d
{
match = 1
continue
}Else{
erg = %erg%%A_Loopfield%
}

If (match = 1)
{
break
}

}
msgbox, % erg

Danke

Re: Loop erst beim zweiten treffer beenden.  Topic is solved

Posted: 21 Jan 2019, 12:54
by nnnik
Du müsstest dein if (match=1) + break vor die Zuweisung der selben Variable schreiben.

Re: Loop erst beim zweiten treffer beenden.

Posted: 21 Jan 2019, 13:12
by KHA
Danke, habe mich heute fast 5std. damit beschäftigt. Dabei war es so einfach. Nochmal Danke

Re: Loop erst beim zweiten treffer beenden.

Posted: 28 Jan 2019, 06:30
by braunbaer
Allgemeiner funktioniert es, wenn du statt match=1 schreibst: match++
und dann auf =2 statt auf =1 abfragst. Die Version funktioniert dann nämlich nicht nur für 2 Matches, sondern auch, wenn du erst nach 3, 4 oder mehr Matches aufhören wilst

Re: Loop erst beim zweiten treffer beenden.

Posted: 28 Jan 2019, 11:10
by KHA
Danke, für den Tipp!