CAD日記

主にAutoCADのことについて書いているけど、近頃は投資系ネタに注力している。自動売買、仮想通貨、PC関係、プログラミングなど。@caddiary

ソフト開発

WinMergeで複数拡張子を対象とするファイルフィルタと簡単な行フィルタ指定をやってみた

投稿日:

WinMergeでファイル比較することは、SEだったらみんなやっていることと思う。でもファイルフィルタと行フィルタは使ったことがないと思う。おいらだって、何年もWinMergeを使ってきたけど、正規表現がさっぱりわからんから使ったことなかった。いや、デフォルトで用意されているファイルフィルタの「Visual C++ loose」なんかは使ったことあった。それが拡張子fltのテキストファイルで、正規表現で中身をいじれば思うようなことができることは知っていた。いかんせん、正規表現という小難しそうなルールに対して高いハードルを感じていて、もう一歩アプローチできなかったのだ。えらそうにこんな記事を書いてはいるものの、どっかのサイトの受け売りで書いただけだった。
WinMegeのフィルタについて今すぐ知りたいならココを読め

ということで、今回は初歩的かつ誰もがやりたがるであろう簡単なフィルタを作ってみることにした。

1.ファイルフィルタで複数の拡張子を指定する方法
フィルタ指定のところの初期値は「*.*」となっている。「*.txt」とすれば単一の拡張子指定ができることはわかっているが、複数拡張子を指定するべく「*.txt;*.csv」なんて指定しても無駄。DFという名のフリーソフトだったらできることだが、WinMergeではできましぇん。

よって、ファイルフィルタをつくる必要性が出てくる。以下に拡張子fltのファイルをそのまま記載する。ファイルそのものをダウンロードするならここをクリック。
## This is a directory/file filter template for WinMerge
name: txtとcsvを対象
desc: 複数拡張子を指定するテスト

## Select if filter is inclusive or exclusive
## Inclusive (loose) filter lets through all items not matching rules
## Exclusive filter lets through only items that match to rule
## include or exclude
def: exclude

## Filters for filenames begin with f:
## Filters for directories begin with d:
## (Inline comments begin with ” ##” and extend to the end of the line)
f: \.txt$
f: \.csv$

nameとdeskは、ファイルフィルタ一覧に出る名称と説明。
defは、includeかexcludeの選択。指定したものだけを対象にするならexcludeで、指定したものを除外するならinclude。
f:はファイル名指定で、「.txt」が末尾にあるファイルを対象とする。末尾を表すのが$で、.を表現するにはその前に\を書くので\.となる。
他にd:という指定があってフォルダ名を指定することができるがここでは不要。

2.行フィルタで前方一致の行を除く
^abc
先頭を表すのが^(山型)で、abcから始まる行という意味になる。
行フィルタは、ファイルフィルタのようにファイルを用意することがなくダイアログから値を入力して使う。

3.行フィルタで後方一致の行を除く
xyz$
後方を表すのが$(ドル)で、xyzで終わる行という意味になる。

4.行フィルタで前方一致と後方一致の両方で行を除く
^abc.*xyz$
2と3の組み合わせだが、そのあいだに.*(ドットとアスタリスク)が入っている。
.*によって、その位置に何か文字があるかもしれないという意味になる。
ドット:(空白文字以外の)なんでもよい文字
アスタリスク:直前のパターンが0回以上の繰り返し(0回を含むので何もなくてもよい)

このあたりが、正規表現の難しいところだな。
正規表現については、本が1冊書けるくらいの複雑な仕組みらしい。その全貌を知る必要はなく、最低限のことを把握すればよい。近々以下のサイトで勉強してみようかね。
正規表現とは?

-ソフト開発

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

Hyper-Vのvhdxを圧縮するのはPowerShellでやるんだけど、その自動化手法がおもしろいじゃん(3)

vhdを手軽に圧縮できるPowerShellプログラムの決定版。 まずは、前回考えたことを振り返る。。 ps1内のvhdのファイルパスを自分で書き変えなきゃいけないのが難点だから、ps1と同じ場所にあ …

no image

ファイル選択でアプリ即死

まずはキーワードを並べる。 ・ファイル選択ダイアログ ・デスクトップ ・ツールチップ ・マウスカーソル ・2回目 ・落ちる(スッといなくなる) ・Adobe Reader 7 ・pdfshell.dl …

PDFアレコレはiTextSharp7も組み込むことにする

PDFiumViewerを使ってPDFアレコレという名のフリーソフトを作ってみたわけだが、PDFiumViewerの限界が見えてきた。

no image

Tech Ed

Windowsアプリつくって十数年経つけど、Tech Edに初めて行った。 アホらしそうだから毎年敬遠してきたけど、 行ってみたらそれなりにおもしろかった。 携帯で撮った写真。     Tech Ed …

高速なPDFビューアをC#とPDFiumでサクっと作ってみよう!

どんなPDFビューアを作ったのかというと、こんなモノ。 開いたPDFがCADの図面っぽいが、れっきとしたPDFファイルであり、ベクトル情報をちゃんと表現しているかを明らかにしたかったので使ったデータ。 …