strreplace letztes Vorkommen aus Heuhaufen ersetzen. Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Hell1

strreplace letztes Vorkommen aus Heuhaufen ersetzen.

Post by Hell1 » 12 Jun 2021, 12:58

Hallo, ich bräuchte Hilfe und zwar weiß jemand wie ich bei "strreplace" das letzte Vorkommen aus dem Heuhaufen ersetze? Bei mir ersetzt er immer das erste Vorkommen sprich von rechts nach links bzw. von oben nach unten. Ich habe ein Dokument in dem mehrmals die selbe Nadel nach der ich Suche vorkommt doch es soll nur das letzte Vorkommen ersetzt werden und nicht das erste oder gar alle Vorkommen.

LG Hell

KHA
Posts: 305
Joined: 21 Aug 2018, 11:11

Re: strreplace letztes Vorkommen aus Heuhaufen ersetzen.

Post by KHA » 12 Jun 2021, 15:04

Mit RegEx sollte funktionieren.

Code: Select all

Heu := "aa ich bin aah ein TestString aa usw."
Nad := "(.*)\Kaa(.*?$)|$"
NewHeu := RegExReplace(Heu, Nad, "$2")
MsgBox, %  NewHeu
Das letzte aa wird hier immer entfernt.

KHA
Posts: 305
Joined: 21 Aug 2018, 11:11

Re: strreplace letztes Vorkommen aus Heuhaufen ersetzen.

Post by KHA » 12 Jun 2021, 16:21

Mir fällt noch das hier ein, vlt. ist es sogar besser

Code: Select all

Heu := "aa ich bin aah ein TestString aa usw."
SuchText := "aa"
ErsetzeDurch := "kk"
MsgBox, % NewHeu := RegExReplace(Heu,SuchText, ErsetzeDurch,,1,InStr(Heu,SuchText,,0)) 

Hell1

Re: strreplace letztes Vorkommen aus Heuhaufen ersetzen.

Post by Hell1 » 12 Jun 2021, 18:51

Danke dir für deine Hilfe.

Aber kannst du mir helfen das darauf zu übertragen da ich das trotz deiner Hilfe nicht schaffe.

Ich habe ein Textdokument dort stehn in verschiedenen Zeilen Pfade zu .mp3 Dateien, das sieht dann folgend aus.

D:\Musik\Beispiel_1.mp3
D:\Musik\Beispiel_2.MP3
D:\Musik\Beispiel_3.MP3
D:\Musik\Beispiel_4.MP3
D:\Musik\Beispiel_5.mp3
D:\Musik\Beispiel_1.mp3
D:\Musik\Beispiel_2.MP3
D:\Musik\Beispiel_3.MP3
D:\Musik\Beispiel_4.MP3
D:\Musik\Beispiel_5.mp3


Davon möchte ich IMMER den letzten Eintrag löschen das wäre in diesem Fall dann "D:\Musik\Beispiel_5.mp3" aber wie gesagt nur den unteren Eintrag und der selbe Eintrag der aber an anderer Stelle in diesem Fall in der Mitte des Textdokuments steht soll erhalten bleiben.

Meine Frage ist jetzt wie kann ich das mit RegExReplace lösen?

Lg Hell

KHA
Posts: 305
Joined: 21 Aug 2018, 11:11

Re: strreplace letztes Vorkommen aus Heuhaufen ersetzen.  Topic is solved

Post by KHA » 13 Jun 2021, 05:09

Code: Select all

Liste=
(join`r`n
D:\Musik\Beispiel_1.mp3
D:\Musik\Beispiel_2.MP3
D:\Musik\Beispiel_3.MP3
D:\Musik\Beispiel_4.MP3
D:\Musik\Beispiel_5.mp3
D:\Musik\Beispiel_1.mp3
D:\Musik\Beispiel_2.MP3
D:\Musik\Beispiel_3.MP3
D:\Musik\Beispiel_4.MP3
D:\Musik\Beispiel_5.mp3
)

SuchText := StrSplit(Trim(Liste, "`r`n"), "`r`n").pop()
ErsetzeDurch := ""
MsgBox, % NewListe := RegExReplace(Liste,"\Q" SuchText "\E", ErsetzeDurch,,1,InStr(Liste,SuchText,,0))

KHA
Posts: 305
Joined: 21 Aug 2018, 11:11

Re: strreplace letztes Vorkommen aus Heuhaufen ersetzen.

Post by KHA » 13 Jun 2021, 05:34

Alternative ohne RegEx

Code: Select all

Liste=
(join`r`n
D:\Musik\Beispiel_1.mp3
D:\Musik\Beispiel_2.MP3
D:\Musik\Beispiel_3.MP3
D:\Musik\Beispiel_4.MP3
D:\Musik\Beispiel_5.mp3
D:\Musik\Beispiel_1.mp3
D:\Musik\Beispiel_2.MP3
D:\Musik\Beispiel_3.MP3
D:\Musik\Beispiel_4.MP3
D:\Musik\Beispiel_5.mp3
)

MaxZeilen := StrSplit(Trim(Liste, "`r`n"), "`r`n").MaxIndex() - 1
For i, v in StrSplit(Trim(Liste, "`r`n"), "`r`n")
{
NewListe .= v "`r`n"

	if (i = MaxZeilen)
	break
}

MsgBox, % RTrim(NewListe, "`r`n")

Hell1

Re: strreplace letztes Vorkommen aus Heuhaufen ersetzen.

Post by Hell1 » 13 Jun 2021, 07:23

Ich danke dir!

Beide Wege führen zum selben Ziel. Du hast mir damit sehr geholfen. :D

Ich wünsche dir noch einen angenehmen Sonntag.

LG Hell

Post Reply

Return to “Ich brauche Hilfe”