2017-08-22 8 views
2

Grep Searchを使用して、私のプロジェクトのすべての.pasファイルと.dfmファイルのテーブルの名前を検索していました。このテーブルを使用するデータセットが少なくとも1つあることは確かですが、結果は.pasファイルでしか見つかりませんでした。私は.DFMファイル内のデータセットの名前を検索し、これは私が見つけたものです:.dfmファイルが単語の途中から文字列値を破損しないようにするにはどうすればよいですか?

object DtsRPCondition: TADODataSet 
    Connection = ConnMain 
    CursorType = ctStatic 
    CommandText = 
     'select FromDay, ToDay, ToTime, Daily, DayOfWeek from Tbl_Reserve' + 
     'ValidDay' 
    ... 

これは.DFMファイルを検索することが無用になるので、私は.DFMファイルの書き込みを制御するオプションや別の検索のいずれかが必要これを処理できるツール。

+3

テキストとして保存されたDFMは、内容に関係なく固定長で文字列を分割します。そのことについては何もできません。バイナリとして保存されたDFMはそれをしません。 –

+2

EMBTが '.dfm'ファイルの書式を変更することはほとんどありません。たぶんあなたは、( '.pas'ファイルで)コードで検索する必要のあるテキストを書くことを検討する必要があります。 –

+2

Delphiはこのような文字列を複数の行に分割するだけで、長すぎると判断します。簡単な回避策は、改行を自分で追加することです。 'from'の前にgrepを追加すると、grepがあなたのために働き始めるはずです。 – mghie

答えて

0

あなたは、DelphiにバンドルConvertユーティリティを使用してテキストのDFMファイルを上書きせず、バイナリにDFMファイルを変換できます。-b =バイナリ出力は、-ebinが使用ビン(または任意の他、あなたがしたいことを意味

convert -b -s -ebin *.dfm 

)を新しいファイルの拡張子として使用し、-sは再帰サブディレクトリを意味します。

eash DFM用の「ビン」ファイルが作成されます。上記のように、これらには単語の折り返しはありません。彼らはバイナリですが、彼らはgrepableでなければなりません。そしてあなたが見る必要のあるDFMを特定するために使用することができます。

関連する問題