Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Klatsch und Tratsch (https://www.delphipraxis.net/34-klatsch-und-tratsch/)
-   -   Suchen und Ersetzen als Skript (mehrfach) (https://www.delphipraxis.net/206739-suchen-und-ersetzen-als-skript-mehrfach.html)

t2000 24. Jan 2021 12:39

Suchen und Ersetzen als Skript (mehrfach)
 
Hallo Community,

kennt jemand eine Möglichkeit, ein Tool oder sonst was, mit dem man ein Skript für das mehrfache Suchen und Ersetzen erstellen kann?

Also ich möchte (in meinem Fall nur mit einer Datei, besser natürlich in mehreren Dateien) in einer Datei viele Ersetzungen mit einem Aufruf automatisch durchführen lassen.
Im speziellen ist ein 10.000 Zeilen große fremde Unit, in der Typen(Namen) genutzt werden die ich selber auch schon nutze. Wenn nun zu dieser Unit Updates kommen, möchte ich den Vorgang schnell wiederholen können.
Nein, meine Namen sollen nicht geändert werden.

Ein entsprechendes command line tool würde auch funktionieren. Dann lege ich mit eine Batchdatei an.

Danke

t2000 24. Jan 2021 12:47

AW: Suchen und Ersetzen als Skript (mehrfach)
 
Kennt jemand dies: http://findandreplace.io/

exon 24. Jan 2021 13:07

AW: Suchen und Ersetzen als Skript (mehrfach)
 
http://docwiki.embarcadero.com/RADSt...usdr%C3%BCcken

selbst noch nicht genutzt.
Aber die Beispiele hören sich vielversprechend an:
...
Vorhandenen AnyDAC-Anwendungen nach FireDAC: Migrieren von AnyDAC-Anwendungen nach FireDAC.
Vorhandenen BDE-Anwendungen nach FireDAC: Migrieren von BDE-Anwendungen nach FireDAC.
Vorhandenen dbExpress-Anwendungen nach FireDAC: Migrieren von dbExpress-Anwendungen nach FireDAC.
...

Rainbow6 24. Jan 2021 13:28

AW: Suchen und Ersetzen als Skript (mehrfach)
 
Natürlich SED - der Stream-EDitor - eigentlich ein klassisches *nix-Tool, gibts aber auch für Windows. SED beherrscht suchen und ersetzen von regulären ausdrücken - und eine Menge mehr.

http://gnuwin32.sourceforge.net/packages/sed.htm

Alternativ wäre auch AWK denkbar - ist aber für reines search-and-replace eigentlich schon wieder Overkill.

Aber nur zur Strategie - wäre es nicht sinnvoller, einmal die eigenen Typ-Namen zu ändern? Dann macht man das 1x - nicht bei jedem Update erneut.

Grüße
Daniel

t2000 24. Jan 2021 13:39

AW: Suchen und Ersetzen als Skript (mehrfach)
 
Danke schon mal.
Scheint ja doch einfacher als gedacht zu sein.
Ich werde mir das von Embarcadero mal ansehen, aber das "fnr.exe" scheint super zu sein. Einzelne exe, 264 kB groß, Suchmuster über Fenster eingeben, cmd-code generieren lassen und mehrfach in Batchdatei einsetzen. :thumb:


Zitat:

Zitat von Rainbow6 (Beitrag 1481477)
Aber nur zur Strategie - wäre es nicht sinnvoller, einmal die eigenen Typ-Namen zu ändern? Dann macht man das 1x - nicht bei jedem Update erneut.

Grüße
Daniel

Das geht nicht wirklich, da der Code von "nicht Delphi" stammt und auch in Teilen Überschneidungen mit der RTL hat. Würde bedeuten immer den Unit-Namen beim Type mit anzugeben. Bei uns selbst würde es bestimmt über 100 verschiedene Dateien betreffen und so nur eine einzige Tool-Datei.

v2afrank 26. Jan 2021 09:38

AW: Suchen und Ersetzen als Skript (mehrfach)
 
So etwas ähnliches habe ich jetzt auch. Ich habe eine Liste von Texten (ca. 5000) und möchte nachschauen ob dieser Text in irgend einer Datei in einem Subdirectory enthalten ist. Geht das auch ?

Ich habe es über in Linuy Script gelöst
#!/bin/bash
if [ -f output.txt ]; then
rm output.txt
fi

while IFS= read -r line;
# do echo "$line";
do
grep -rnw -e "$line" $1;
if [ $? -eq 0 ]; then
echo "\"$line\" : true\n" >> output.txt
else
echo "\"$line\" : false\n" >> output.txt
fi
done

himitsu 26. Jan 2021 14:42

AW: Suchen und Ersetzen als Skript (mehrfach)
 
Bei uns hat jemand eine FART.exe reingelegt, womit SQL-Scripte angepasst werden. (z.B. DBName in Backups)
"Find And Replace Text"
Aber als ich das selbst nutzen wollte, um Zeilenumbrüche anzupassen, da hatte ich ein paar limitierende Problemechen, da die Entwickler scheinbar der Meinung sind, dass RegEx niemand brauche.



Klar, in CMD ist manches nicht ganz so einfach.
Aber Scripte hat man im Windows auch noch paar Andere, wie PowerShell, VBScript und JavaScript. (die letzten Beiden über den WSH/WindowsScriptingHost, wo man auch Python, PascalScript und mehr nachrüsten könnte)

Selbst ohne installiertes WSL (Windows-Subsystem für Linux) haben Viele von euch bestimmt auch eine BASH zur Verfügung.
Die arbeitet zwar teilweise bissl anders und hat dafür auch eine automatische Übersetzung von Windows- nach Linux-Pfaden ... siehe GitBash (weil Git habt ihr doch bestimmt installiert/rumliegen)


Und für jede Script-Sprache gibt es unzählige Beispiele zum Suchen+Ersetzen.


PS: Nur weil wir zufällig in soeinem Forum sind: Einen 3-Zeiler ins Delphi getippt und schon habt ihr ein eigenes passendes Konsolenprogrämmchen.
Selbst mit sowas wie dem FinalBuilder kann man schnell was zusammenklicken, welches sich dann über die Console ausführen ließe, bzw. aus einer Batchdatei.


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:26 Uhr.

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