Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Batch String-Replace mehrerer Strings in mehreren Dateien einer Projektgruppe möglich (https://www.delphipraxis.net/192009-batch-string-replace-mehrerer-strings-mehreren-dateien-einer-projektgruppe-moeglich.html)

a.def 13. Mär 2017 11:22


Batch String-Replace mehrerer Strings in mehreren Dateien einer Projektgruppe möglich
 
Ich räume gerade meine Projektgruppe ein bisschen auf. Den Code natürlich auch.
Statt die Idents und Sections bei Ini-spezifischen hardcoded zu hinterlegen nutze ich jetzt Enums dafür. Wenn ich nun einen Ident oder eine Section umbenennen, muss ich das nur noch einmalig tun.
Sinn und Unsinn sei dahingestellt.

Meine Frage ist nun, ob es ein Tool gibt dem ich sagen kann "Nimm A, B, C in jeder Datei und ersetzte es durch D, E, F" ?

Der schöne Günther 13. Mär 2017 11:32

AW: Batch String-Replace mehrerer Strings in mehreren Dateien einer Projektgruppe mög
 
http://docwiki.embarcadero.com/RADSt...usdr%C3%BCcken

a.def 13. Mär 2017 11:42

AW: Batch String-Replace mehrerer Strings in mehreren Dateien einer Projektgruppe mög
 
Code:
 refind *.pas /I /W /P:TQuery /R:TFDQuery
klingt vielversprechend. Kann man auch mehrere Suchbegriffe angeben? Ein erster Test fällt leider negativ aus und es wird nur die zuletzt gefundene Datei modifiziert.
Habe herausgefunden wie. Einfach eine BAT-Datei mit mehreren Aufrufen von reFind erstellen.

a.def 13. Mär 2017 13:25

AW: Batch String-Replace mehrerer Strings in mehreren Dateien einer Projektgruppe mög
 
Ok so einfach ist es dann doch nicht. Ich scheitere daran dem zu suchenden String ' bzw " mitzugeben was ersetzt werden soll
Delphi-Quellcode:
/I /W /S /P:'width', /R:width,
Gefunden werden soll 'width', (mit Leerzeichen am Ende) und ersetzt werden soll es mit width, (mit Leerzeichen am Ende).

Uwe Raabe 13. Mär 2017 14:03

AW: Batch String-Replace mehrerer Strings in mehreren Dateien einer Projektgruppe mög
 
Hast du mal versucht, die Ersetzungsregeln (eine pro Zeile im Format <searchpattern> -> <replacepattern>) in einer separaten Datei abzulegen und diese über den /X-Parameter dem ReFind zu übergeben?
Damit solltest du auch mit einem einzigen ReFind-Aufruf zum Ziel kommen.

bra 13. Mär 2017 14:23

AW: Batch String-Replace mehrerer Strings in mehreren Dateien einer Projektgruppe mög
 
Wenn es nicht unbedingt ein Kommandozeilentool sein soll, können auch Editoren wie Notepad++ das Ersetzen in mehreren Dateien. Einfach alle Dateien per Drag&Drop in den Editor ziehen und dann Ersetzen in allen offenen Dateien. Ist oft einfacher als erst einen Batch zusammenzubasteln, der dann wieder an irgendwelchen Sonderzeichen in den zu suchenden/zu ersetzenden Strings scheitert.
Außerdem sieht man so das Ergebnis auch gleich und kann die Suche einfacher testen.

a.def 13. Mär 2017 14:36

AW: Batch String-Replace mehrerer Strings in mehreren Dateien einer Projektgruppe mög
 
Habe mir das jetzt mit FNR zusammengebastelt:

Code:
fnr.exe --cl --dir C:\test --fileMask "*.txt" --includeSubDirectories --find "'width', " --replace "width, "

haentschman 13. Mär 2017 15:15

AW: Batch String-Replace mehrerer Strings in mehreren Dateien einer Projektgruppe mög
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin...8-)

Macht es euch nicht so schwer... :P Wenn ich das richtig verstanden habe, tuts das Stapel Ersetzen vom CNPack auch. 8-)

a.def 13. Mär 2017 15:27

AW: Batch String-Replace mehrerer Strings in mehreren Dateien einer Projektgruppe mög
 
Klar tuts das Stapelersetzen von CNPack auch. Aber ich müsste den Vorgang dann für jeden Ident von Hand wiederholen :P
Bei unter 10 Idents geht das noch. Aber gerade eben hatte ich 64.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz