Bräuchte ein Miniprogramm (Win)

sanni74

Lt. Junior Grade
Registriert
Aug. 2011
Beiträge
304
Liebe CB - aktive Programmiererfahrene, ich habe leider ein Problem und hoffe Ihr könnt mir helfen.
Ich nehme an, dass es sich um eine technische Kleinigkeit handelt, habe selber aber leider keinerle Erfahrung mit der Programmiererei.
Ich hoffte, innerhalb Notepad++ einen Weg zu finden (ersetzen via Makro o.ä.), aber mir scheint damit gehts nicht.

zum Problem:
Ich habe etliche einfache asci-Dateien.
in diesen findet sich mehrfach an verschiedenen Stellen folgender Ausdruck: "9999 Schwarzer Peter", wobei das 9999 variabel ist. Es kann einfach mit Leerzeichen oder andere Zahlen besetzt sein. Schwarzer Peter ist (wie auch die Wertlänge) konstant.
Ich möchte nun das "9999 Schwarzer Peter" massenhaft durch ein "9947 Schwarzer Peter" ersetzen, wobei es sich um 9947 um einen festen Wert handelt.
Das wäre es schon gewesen, ich bekomme das leider nicht hin.
Funktionieren sollte das Ganze unter Win7 (32 und 64bit) und unter Win XP möglichst einfach. Keine Ahnung, welche Programmiersprache dafür am geeignetsten wäre.
Laufen sollte das (da es m.(bescheidenen) M.n. in Notepad++ leider nicht geht) bspw. einfachst so:
1.) Proggi starten, 2.)asci Datei wählen, 3.) Massenhaftes ersetzen (gern mit Anzahl der Ersetzungen) 4.) Ausgabe in Asci-Datei (Vorlage kann dabei überschrieben werden).
Ganz super wäre ev. auch ein Befehlsaufruf in Notepad++, wenn ich die Asci-Datei damit geöffnet habe, wenn es irgendwie so möglich sein sollte.
Ich hoffe, ich habe mein Problem einigermaßen verständlich beschrieben und jemand hier kann mir dabei helfen. Na mal sehen, bin auf Antworten gespannt ...
 
Wenn Notepad++ reguläre ausdrücke beherrscht:

Suchen nach: .* Schwarzer Peter
Ersetzen durch: 9947 Schwarzer Peter

Wenn vor 9999 bzw. welche Zahl auch immer da steht, noch andere Zeichen vorhanden sind, die nicht ersetzt werden sollen, muss man den regulären Ausdruck entsprechend anpassen.

Textpad kann das auf jeden Fall.
 
Was Back2Roots schreibt funktioniert zwar, aber nur wenn die Ausdrücke auch am Zeilenanfang stehen. Befindet sich das "9999 Schwarzer Peter" irgendwo in der Mitte eines Textes, dann wird mit dieser Lösung Zeile für Zeile alles ersetzt was davor steht.

Notepad++ kennt in Version 5.x keine Quantifier, daher ist das dort nicht so einfach zu bewerkstelligen. Verwendest du aber Version 6+, dann besitzt das Programm die PREG Regex Engine. Dort müsste dann folgender regulärer Ausdruck funktionieren:

(\d| ){4} Schwarzer Peter
 
Grmpf, 5.9er Version atm ....
Die Ausdrücke stehen leider nicht am Zeilenanfang, die Positionen sind variabel.
Ziehe sofort die 6er und versuche das mal.
Ich gebe dann quasi beim ersetzen das ein:
von
(\d| ){4} Schwarzer Peter
nach
9947 Schwarzer Peter
was ich ja als Macro aufzeichnen könnte ...
Ich hoffe, ich hab´s richtig verstanden und melde mich, wenn ich durch bin :D

Tante edit:
Danke für Eure so schnellen Antworten!
Karol_´s Lösung hats gebracht, nach update und setzen der richtigen Ersetzungseinstellungen.
Läuft jetzt als Macro. Super! Dickes Dankeschön !
Kann geschlossen werden.
 
Zuletzt bearbeitet: (klappt :D)
Sowas würde auch gehen ;D Erdacht mit dem Ältesten Freeware Betriebssystem ;D

Record Macro Ein
STRG + F
"Schwarzer Peter" Eintragen Ohne ""
Find Next
Close
<- ( Preil Taste Links )
<- ( Preil Taste Links )
DEL
DEL
DEL
DEL
9
9
9
9
F3
Record Macro Off

Danach einfach immer auf "Playback"
 
Hey, schöne Gedanken haste Dir da gemacht! :D
Technisch würde das gehen, aber das ganze dann ggf. bis zu 3-stellig in einer Datei und das Ganze in ner 3stelligen Dateianzahl .... Ist dann doch ne Menge Handarbeit. Karol_ funzt super. Hab ich was dazugelernt.
 
Zurück
Oben