前回前々回に引き続きgrep検索をするプログラムの紹介です。今回はPowerPointのファイルをgrep検索するプログラムです。使い方およびGUI操作は前回、前々回と同様です。

使い方

検索対象がpptxファイルに変更されただけで、使い方は前々回と同様です。

必要モジュール

以下のモジュールをインストールする必要があります。

ソースコード

プログラムの簡単な説明

前回と違う部分だけ説明していきます。

15~21行目:WordおよびPDFでは検索ワードが見つかった行数を結果に格納していましたが、今回はスライド番号を格納するため、前回とは違う結果クラス(ResultPptx)を作成しています。

95~107行目:検索結果をダブルクリックしたときにファイルを開く処理です。PowerPointのパスは環境によって違うと思いますので、書き換えが必要です。私の場合、あるPCでは「C:\Program Files\Microsoft Office\Office16\POWERPNT.EXE」、別のPCでは「C:\Program Files\Microsoft Office\root\Office16\POWERPNT.EXE」でした。

163~166行目:当然ながらglobで検索するファイルの拡張子は”pptx”になります。

168~208行目:メインの検索処理の部分です。各スライドには複数のオブジェクト(shapes)が含まれており、それを1つずつチェックしています。テキスト情報を持っているオブジェクトから文を取り出し、正規表現で検索ワードとマッチするかどうかを判定しています。また、ノートに含まれる文字も検索しています。

210~215行目:検索結果を表示しています。最初に述べた通り、行数ではなくスライド番号を表示しています。