Perl RegEx 式を使用する検索および置換ユーティリティ: reFind.exe
reFind は、テキスト ファイル内の Perl RegEx テキスト パターンを検索および置換するためのコマンドライン ユーティリティです。
reFind を使用した移行方法については、
- 既存の AnyDAC アプリケーションを FireDAC に移行する場合は、「AnyDAC アプリケーションの FireDAC への移行」を参照してください。
- 既存の BDE アプリケーションを FireDAC に移行する場合は、「FireDAC への BDE アプリケーションの移行」を参照してください。
- 既存の dbExpress アプリケーションを FireDAC に移行する場合は、「FireDAC への dbExpress アプリケーションの移行」を参照してください。
目次
コマンドライン ヘルプ
RegEx (PCRE) search and replace utility, v 2.5 Copyright (c) 2013 Embarcadero Technologies, Inc. Usage: reFind <filemasks> [/S] [/Y] [/B:0|1|2] [/Q] [/I] [/W] [/L] [/P:<searchpattern>] [/R:<replacepattern>] [/X:<rule filename> <filemasks> Specifies the file masks or file names to process. /? Displays help. /S Search this directory with all subdirectories. /Y Modify also read-only files. /B:0 if .bak file exists no replace will be performed (default). /B:1 if .bak file exists, it is overwritten. /B:2 No .bak file is created. /Q Quiet operation. No output to console. /I Ignore case. /W Whole words. /L Multi line search. /P Perl RegEx search pattern. /R Perl RegEx replacement pattern. /X Specifies rule file with multiple Perl RegEx search and replace patterns or rules. The rule formats: #unuse <unit> - remove unit from the PAS uses clause #remove <property> - remove property from PAS and DFM #migrate [<class> :] <old> -> <new> [, <unit>] - replace old with new identifier, optionally add unit to uses clause, optionally restrict migration to the specified class Each file line has format: <searchpattern> -> <replacepattern>
パターンの形式
reFind では、検索および置換パターンに Perl 互換の正規表現(PCRE)を使用します。
詳細については、次のサイトを参照してください。
- 英語:http://perldoc.perl.org/perlre.html#Regular-Expressions
- ロシア語:http://citforum.ru/internet/perl/regexp
ルールの形式
ルール ファイルはいくつかの行から成り、各行は単一のルールを表しています。 ルール ファイルは、/X:<ファイル名> コマンド ライン パラメータを使って指定することができます。
検索および置換ルール
<search pattern> -> <replace pattern>
<Search pattern> は PCRE 検索パターンです。<Replace pattern> は、PCRE 置換パターンです。
ユニット削除ルール
#unuse <unit name>
指定された <ユニット名gt; を、PAS ファイルの "uses" 句の interface および implementation セクションから削除します。
プロパティ削除ルール
#remove <property name>
指定されたプロパティ名(<property name>)を PAS ファイルと DFM ファイルから削除します。 PAS ファイルから、<プロパティ> := <値>; のような構文要素がすべて削除されます。
移行ルール
#migrate [<class> :] <old name> -> <new name> [, <unit>]
PAS ファイルおよび DFM ファイル内のすべての <old name> 識別子を <new name> に置換します。 <class> が指定された場合、ルールは、指定されたクラスのオブジェクトにのみ適用されます。
- DFM ファイルの場合 - 継承されたオブジェクトではなく基底オブジェクトにのみ適用されます。
- PAS ファイルの場合 - "with" 句の内容ではなく <オブジェクト>.<old name> という構文要素にのみ適用されます。
<unit> が指定された場合、それは、<old name> が見つかった PAS ユニットの "uses" 句に追加されます。 ここで言う <unit> は、複数のユニットをコンマで区切ったリストでもかまいません。
例
- .pas ファイル内のすべての "TQuery" を "TFDQuery" に置換する場合:
refind *.pas /I /W /P:TQuery /R:TFDQuery
- .pas および .dfm ファイル内のすべての "TxxxQuery" を "TFDQuery" に置換する場合:
refind *.pas *.dfm /I /W "/P:T[A-Za-z]+Query" /R:TFDQuery
- .pas および .dfm ファイル内のすべての "TxxxQuery" を "TQueryxxx" に置換する場合:
refind *.pas *.dfm /I /W "/P:T([A-Za-z]+)Query" /R:TQuery\1
- .dfm ファイルから "Origin = xxxx" をすべて削除する場合:
refind *.dfm /L "/P:\n +Origin =.+$" "/R:"
- BDE から FireDAC へアプリケーションを移行する場合:
reFind *.pas *.dfm /X:FireDAC_Migrate_BDE.txt