Benutzer:Robot Monk/ClipboardRegExReplace.ahk

/*

Starte das Skript (Doppelklick), es läuft die ganze Zeit. 
Wenn du etwas ersetzen haben willst, kopiere den Text in die Zwischenablage 
Trage ein, was gesucht und durch was ersetzt werden soll. 
Das Ergebnis aus der Zwischenablage einfügen
Um das Skript zu beenden, schließe das Fenster oder drücke Cancel

*/

IniRead, findText, optionen.ini, Global, findText, %A_Space%
IniRead, replaceText, optionen.ini, Global, replaceText,  %A_Space%
Gui, Add, Text,, Suchen nach (RegEx):
Gui, Add, Text,, Ersetzen durch:
Gui, Add, Edit, vFind ym w200, %findText%
Gui, Add, Edit, vReplace w200, %replaceText%
Gui, Add, Button, default, OK  ; The label ButtonOK (if it exists) will be run when the button is pressed.
Gui, Add, Button, , Cancel
Gui, Show,, In Clipboard Ersetzen...
return

ButtonOK:
	Gui, Submit ; Save the input from the user to each control's associated variable.
	count:=0
	IniWrite, % find, optionen.ini, Global, findText
	IniWrite, % replace, optionen.ini, Global, replaceText
	
	;Gui-Form verwandelt Spezialzeichen in lesbare Zeichen. Hier werden sie zurück verwandelt:
	StringReplace, replace, replace, ``r, `r, All
	StringReplace, replace, replace, ``n, `n, All
	StringReplace, replace, replace, ``t, `t, All
	StringReplace, replace, replace, \r, `r, All
	StringReplace, replace, replace, \n, `n, All
	StringReplace, replace, replace, \t, `t, All
	
	
		
	clipboard:=RegExReplace(clipboard, find, replace, count)
	if ErrorLevel
		MsgBox, Ein Fehler ist aufgetreten. Fehlermeldung: %ErrorLevel% `n 
	else
		MsgBox, %count% Treffer wurden ersetzt. Das Ergebnis liegt in der Zwischenablage
	
	Gui, Show,, In Clipboard Ersetzen...
	
return

GuiClose:
ButtonCancel:
	ExitApp

/*
Beispiele:

Zeile nach }} entfernen:
"}}\r\n.*?\r\n"  durch "}}\r\n"

Leerzeichen am Zeilenanfang entfernen:
"m)^ +" durch ""	; 

Trennzeichen und Leerzeichen am Zeilenende entfernen:
"([a-zäöüß])[- ] ?\r\n([a-zäöüß])" durch "$1$2"



Formatirung der Namen:
"m)^((([A-ZÄÖÜ]).)\S*:) ([A-ZÄÖÜ].*?) ((\2|\3)\.,)" ersetzen durch "\r\n'''$1''' ''$4'' $5"

Absätze:
nach kurzen Zeilen
"m)^.{0,59}[^}]$", "$0`r`n"
wenn die Zeile mit Vgl. beginnt:
"([^\n])(\r\nVgl)", "$1`r`n$2"

 
Sonstige einmalige Leerzeilen durch Leerzeichen ersetzen: (lieber am Ende der ganzen Arbeit)
"([^\n}])\r\n([^\r])" durch "$1 $2"
*/