トップページへ

U8ファイル日記検索

(TUnKensaku20.exe)

Access Count : 96

 実行プログラムは無料でご利用いただけます。

 なお、ダウンロードのリンクは、一番下のセクションの前の方に配置してあります。

 Update : 2020.02.27.thu.

ご使用上のご注意


 悪意のあるコードはプログラムしていませんが、本プログラムのご利用によって生じた結果について、一切責任を負いません。
 ご了承ください。
 ご了承の上、本プログラムをご利用ください。

<注意>
 対応OSは、Windows 10です。

 本プログラムの結果ファイル名は、検索対象フォルダー内に、Tfzkbp1sfSELECT*.TXTとTfzkbp1sfRVS*.TXTという名前で作成されます。
 検索対象フォルダーに指定したフォルダー内のTfzkbp1sfSELECT*.TXTとTfzkbp1sfRVS*.TXTは、毎回、*部分の数字が差し換わって、次々増設されてゆきます。
 適宜、不要になったら結果ファイルを削除するなどしてください。

 本プログラムが正常に動作するためには、検索対象フォルダー内の、.TXTか.txtのファイルが、UTF8のコード体系で保存されている必要があります。
 また、検索条件ファイル、.JKNか.jknのファイルも、UTF8のコード体系で保存されている必要があります。
 ShiftJISなど、ほかのコード体系の、.TXTか.txtか.JKNか.jknのファイルに本プログラムがアクセスすると、本プログラムは、異常終了します。

 本プログラムTUnKensaku20は、BOMなしのUTF8コード体系で、検索結果ファイルを出力します。
 検索対象ファイルおよび検索条件ファイルには、BOMなしのUTF8のファイルでもBOMありのUTF8のファイルでもご使用いただけます。

 本プログラムは、検索対象フォルダ内に、ファイルタイプ名の付いていないファイルが存在すると異常終了します。

本プログラムのご説明


<説明>
 各検索対象ファイルに対しての処理の開始位置に、どのファイルからの抽出であるかのインデックス情報も付記しています。
 それが、 *** 下記は、 c:\utf8text\nikki155.txtからの抽出です。******
です。
 そこから1行空けた、抽出文章の4行手前には、何番目の抽出であるかを表す抽出番号が全ファイルを跨った通し番号で付されます。
 それが、
1
です。  3行手前には、検索対象ファイル中での行番号と、検索対象ファイルの名前を表示します。
 それが、
194 -- 210 in <c:\utf8text\nikki155.txt> です。
 検索対象ファイル中の検出した文章の行番号は、抽出文章の先頭行番号 -- 抽出文章の末尾行番号、という形式で表示します。
 検索対象ファイル名の表示は、in <検索対象ファイル名>、という形式で表示します。
 以上の2項目を1行で表示します。

 文章の先頭とは、ファイルの先頭か、所定数以上の連続改行文字の次の位置です。
 本プログラムでは、文章の先頭行の行頭から始まる4桁の半角数字、半角ピリオド、そして、2桁の半角数字、半角ピリオド、また2桁の半角数字、半角ピリオド、で始まっている行を、日付とみなします。
 次の日付行が検出されるまでは、どの文章も、直前の日付の文章として扱われます。
 抽出文章に直近の、この日付、と思われる文字列を含む行を、@の次に配置して、抽出文章の2行手前に置きます。
 それが、
@2017.05.02.火. です。
 さらに、抽出文章の直前には、検索対象ファイル内における抽出件数番号を置きます。
 それが、
1
です。
 本プログラムは、以上の4行を、各抽出文章ごとにその直前の3行に付記します。これがインデックス情報です。
 そしてその直後の行からに、抽出文章が置かれます。

 ですから、抽出結果ファイルの1件目までを下記に示すと次のようになります。

*** 下記は、 c:\utf8text\nikki155.txtからの抽出です。******

1
194 -- 210 in <c:\utf8text\nikki155.txt>
@2017.05.02.火.
1
 プログラムの作成過程において、リストのリストを関数にmapを2重に重ねて適用することをした時、つまりたとえば、map (map (*2)) [[12,15],[19,61]]。
 この場合、リストのリストは、[[12,15],[19,61]]である。関数は、(*2)である。そして、mapを2重に使用している。
 この場合、どのように評価が進むか・どのように運算が進むか。
 まず、先頭のmapによって、リストのリストから先頭要素のリストから順にリストが取り出されて、第2引数の関数(map (*2))に供給される。そしてそのそれぞれの結果が並んだリストが得られる。
 つまり、[(map (*2)) [12,15], (map (*2)) [19,61]]が得られる。
 そしてさらに、それぞれの要素の中で、評価が・運算が・演算が、実行される。
 つまり、[[12*2, 15*2], [19*2, 61*2]]が得られる。
 さらに、評価・運算・演算、が進んで、結局、[[24,30],[38,122]]が得られる。
 であるから、最初のリストのリストのデータ構成を保ったまま、その各要素に対して関数で演算した結果が得られる。








コマンドプロンプトから、たとえば、
TUnKensaku20 4 c:\utf8textfolder\programsakusei.jkn +++ c:\utf8textfolder i c
とタイプ入力して、リターンキーを押すと本プログラムが起動します。
 またこの場合の、検索条件ファイルprogramsakusei.jknの例は、
プログラム Program +++ 作成 です。
 そして、この検索条件ファイルも、検索対象ファイルも、UTF8コード体系で、保存されていることが必要です。


 本プログラムで、日記検索が行われる対象のテキストファイルは、まず、UTF8のコード体系で保存されていること。
 そして、文章の先頭行に、4桁の半角数字、半角ピリオド、そして、2桁の半角数字、半角ピリオド、また2桁の半角数字、半角ピリオド、で始まっている行、つまり、日付行が存在すること。
 そして、抽出対象となる1件1件の文章は、連続改行文字で隔てられていること。
 以上が必要です。
 ただし、日付行が存在しなくても、指定した個数の連続改行文字で隔てられた文章ごとに、複合条件で全文検索は行われます。しかし、抽出文章の2行上の@の次からに、日付情報が置かれなくなります。
 日付行が存在していれば、抽出文章の手前側の直近の日付行の情報が、@の次からに出力されます。
 なお、本プログラムは、結果ファイル、および、検索条件ファイルは、検索対象ファイルとしては取り扱いません。
 結果ファイルや検索条件ファイルが増設されても、テキストファイル(※ファイルタイプ、.TXTか.txtのファイル)だけを対象にして、複合条件で全文検索を行います。
 なお、検索対象フォルダー内に存在するフォルダーも検索対象にする場合には、末尾の第6引数でc以外を指定してください。
 第5引数で、i以外を指定すると、検索結果に、インデックス情報を一切付加しません。

<ご使用方法>


<ご使用方法>
 本プログラムTUnKensaku20は、コマンドプロンプトを起動して、実行します。
 コマンドプロンプトに、chcp 932を入力して、コードページをShiftJISに設定します。
 使用するテキストファイルのコード体系は、UTF8でなければ、このプログラムは正常に動作しません。

 検索対象ファイルや検索条件ファイルは、UTF8、のコード体系で保存してください。

 コマンドプロンプトから、TUnKensaku20 セパレータカウント 検索条件ファイル名 セパレータ 検索対象フォルダー名 Iまたはそれ以外 Cまたそれ以外、を入力してご利用ください。
 つまり例えば、
TUnKensaku20 4 c:\utf8textfolder\programsakusei.jkn +++ c:\utf8textfolder i c
のようにタイプ入力してリターンキーを押してください。

 セパレートカウントは、検索対象ファイルの中の文章と文章を、改行文字連続何個で区切っているか。
 その改行文字の連続個数、を指定する数字です。上の例では4を使用しました。
 検索条件ファイル名は、全文検索の複合条件を登録したファイル名です。
 上の例では、検索条件文字列が登録されているファイルを、c:\utf8textfolder\programsakusei.jknとしました。
 セパレータは、検索条件ファイル内で、検索条件文字列のブロック同士を区別する文字列です。
 ブロック内の文字列同士は論理和で検索されます。別のブロック同士は、論理積で検索されます。
 つまり、プログラムかPragramが含まれていて、なおかつ、作成、が含まれている文章を抽出したい時には、
プログラム Program +++ 作成 という風に、検索条件ファイルに登録します。
 この場合、ブロックとブロックを隔てている+++がセパレータです。
 なお、このファイルも、UTF8コード体系で作成してある必要があります。
 検索対象フォルダー名は、検索対象とするUTF8コード体系の、ファイルタイプ名が.txtか.TXTであるファイルが格納されているフォルダーの名前です。
 それらを、プログラム名に続けて、
TUnKensaku20 4 c:\utf8textfolder\programsakusei.jkn +++ c:\utf8textfolder i c
と、コマンドプロンプトでタイプ入力して、リターンキーを押すと、日記検索が始まります。

ABCかDEFGかHIを含んでいて、なおかつ、JKLかMNOを含んでいて、なおかつ、PQRかSTUかVWXかYZを含んでいる文章を検索したいなら、
検索条件ファイルに、 ABC
DEFG
HI
+++
JKL
MNO
+++
PQR
STU
VWX
YZ
と登録してください。
 ここで、+++は、検索条件ファイル内のセパレータです。
 セパレータには、特殊文字を使用することはできません。
 セパレータは、検索条件ファイル内のセパレータです。
検索条件ファイルの登録の際に使用したセパレータをタイプしてください。
したがって、上記の例では、+++をセパレータとしてタイプしてください。
 検索対象フォルダー名は、複合条件で全文検索を実施する対象フォルダーの名前です。
 検索対象フォルダー内の、.TXTか.txtのファイルだけを対象にして、先に登録した検索条件ファイル内の複合条件にて、全文検索を実施します。
 ただし、検索対象フォルダー名ではなく、テキストファイル名を指定した場合には、指定したテキストファイルに対して複合条件全文検索を実施します。

 プログラム名に続けて、以上、6項目を、コマンドプロンプトから入力してください。
TUnKensaku20 セパレータカウント 検索条件ファイル名 セパレータ 検索対象フォルダー名 Iかそれ以外 Cかそれ以外
 とタイプ入力して、リターンキーを押すと、複合条件全文検索プログラムが実行されます。
 実行結果が、出力ファイルに得られます。
 ちなみに、出力ファイル名は、複合条件全文検索の結果、条件を満たした文章を抜き出して登録したファイルTfzkbp1sfSELECT*.TXTと条件を満たさなかった文章を登録したファイルTfzkbp1sfRVS*.TXTです。
 *には、数字、ハイフン、ピリオド交じりの文字列がファイル名の一部として位置します。

 TUnKensaku20は、第6引数にC指定すると1つのフォルダー内の、.TXT か .txt のファイルだけを検索対象ファイルにして、複合条件で全文検索を実施します。
 TUnKensaku20は、第6引数にUなどを指定すると、第4引数で指定したフォルダ内の全フォルダ内の、ファイルタイプ名が.TXT か .txt のファイルを検索対象ファイルにして、複合条件で全文検索を実施します。
 ただし、TUnKensaku20の4番目の最後の引数に、フォルダー名ではなく、ファイル名まで入力すると、その1ファイルだけを検索対象ファイルにして、複合条件で全文検索が実施できます。
 また、第5引数で、Iではなく、Sなどを指定すると、結果ファイルにインデックス情報を一切付加しなくなります。

<ご使用上のご注意>
 検索対象フォルダー内には、UTF8のコード体系のプレーンなテキストファイルだけを、ファイルタイプ名を.TXTか.txtで用意してください。
 ただし、.JKNや.jknのファイルが存在していてもそれがUTF8のコード体系のプレーンなテキストファイルなら問題ありません。
 ANSI・ShiftJISのコード体系の、.TXTか.txtか.JKNか.jknのファイルに本プログラムがアクセスした場合には、本プログラムは異常終了します。
 本プログラムの実行によって、日記検索がご利用いただけます。

ダウンロード

Update : 2020.03.12.thu.
フリーウェア・無料、です。
TUnKensaku20.exe
Windows 10対応
Author : TAKEHANA TADASHI
Program Size : 23,405,612 bytes
Version : 1.02.
Note : プログラムの起動時に指定したパラメーターの件数が不適切だった時に、使い方の案内情報を表示するようにしました。


 ダウンロードしましたら、『ダウンロード』フォルダーに、TUnKensaku20.exeがあるかと思います。
 たとえば、ユーザー名をTakehanaと設定している場合。
 まず、エクスプローラーで、『ダウンロード』フォルダーを開いて、TUnKensaku20.exeをコピーします。
 エクスプローラーで、『PC』をクリックし、『C:』をWクリックし、『ユーザー』をWクリックし、『Takehana』をWクリックして、コピーしたTUnKensaku20.exeを貼り付けます。
 コマンドプロンプトを起動します。
 プロンプトが、C:\Users\Takehana>となっていなければ、次のコマンドを実行します。
cd c:\Users\Takehanaとタイプ入力して、リターンを押します。
 これで、プロンプトが、C:\Users\Takehana>になります。
 これで、カレントフォルダーが、本プログラムTUnKensaku20.exeの存在するフォルダーになりました。
 そこで、
TUnKensaku20 4 c:\utf8textfolder\programsakusei.jkn +++ c:\utf8textfolder I C
とタイプ入力して、リターンキーを押せば、Cドライブのutf8textfolderフォルダー内のprogramsakusei.jknを検索条件ファイルとして、Cドライブのutf8textfolder内のテキストファイルを検索対象ファイルとして、本プログラムTUnKensaku20.exeが起動します。
 なお、第5引数がIでしたから、インデックス情報が付加されて抽出文章が、結果ファイルに出力されます。
 詳しくは、<ご使用方法>をご参照ください。