YYYY/MM/DD の抽出・検索No.09327
石田 さん 21/04/14 00:13
 
あるフリーの日記帳ソフトを使っています。記録ファイルは月単位で格納されます。

202001.txt 2020年1月の日記
202002.txt 2020年2月の日記
このファイルを開くと、
2020/01/16
 日記本文
2020/01/19
 日記本文
2020/01/21
 日記本文
2020/01/24
 日記本文
2020/02/04
 日記本文
2020/02/06
 日記本文
---
この無作為の YYYY/MM/DD をマクロで抽出して検索・ジャンプする方法はないでしょ
うか?

[ ]
RE:09327 YYYY/MM/DD の抽出・検索No.09328
Iranoan さん 21/04/14 01:57
 
On 2021-04-14 00:13 +0900, 石田 wrote:
> 202001.txt 2020年1月の日記
> 202002.txt 2020年2月の日記
> このファイルを開くと、
> 2020/01/16
>  日記本文
<snip>
> この無作為の YYYY/MM/DD をマクロで抽出して検索・ジャンプする方法はないでし
>ょうか?
検索は正規表現を使えば出来ますね
\d{4}/[01]\d/[0-3]\d
といった感じでしょうか?

後ジャンプについてですが、日記のファイルを開くということでしょうか?
それだとマクロが必要になりますね
その場合も、
・カーソルが日付部分に有ればよいのか?
・カーソル行の行頭に日付が記載されている前提か?
など条件によって内容が変わってきます

[ ]
RE:09328 YYYY/MM/DD の抽出・検索No.09331
石田 さん 21/04/15 01:10
 
アドバイス有り難うございます。

正規表現でGrep検索をすると YYYY/MM/DD がヒットします
Grep検索窓
\d{4}/[01]\d/[0-3]\d
*.txt
G:\wDiary\MyDiary

が以下のマクロにすると
setcompatiblemode 0x20000;
grep \\d{4}/[01]\\d/[0-3]\\d "*.txt","G:\\wDiary\\MyDiary",regular,hilight;
endmacro;
----
diarySearch.mac(2):式がおかしいです
キーワード/関数/式:\\d{4}/[01]\\d/[0-3]\\d になります。
一ヶ月分の一枚のファイルにある
YYYY/MM/DD
本文一行目
だけ上書き禁止で、表示させたいのですが、まだうまくいきません。


[ ]
RE:09331 YYYY/MM/DD の抽出・検索No.09332
Iranoan さん 21/04/15 01:32
 
石田さんこんにちは、Iranoan です
> が以下のマクロにすると
> setcompatiblemode 0x20000;
> grep \\d{4}/[01]\\d/[0-3]\\d "*.txt","G:\\wDiary\\MyDiary",regular,hilight;
> endmacro;
> ----
> diarySearch.mac(2):式がおかしいです
ご自分でマクロの作成を初められているのに、答えを書いてしまうのも何なので、
> 正規表現でGrep検索をすると YYYY/MM/DD がヒットします
> Grep検索窓
> \d{4}/[01]\d/[0-3]\d
> *.txt
> G:\wDiary\MyDiary
これを、「キー操作の記録開始/終了」と「キー操作の保存」で、別のマクロ・ファ
イルとして保存して、「他の秀丸エディタと内容比較」を使って比べてみるのをお勧
めしておきます

[ ]
RE:09332 YYYY/MM/DD の抽出・検索No.09333
石田 さん 21/04/15 05:44
 
Iranoanさん、アドバイスありがとうございました。

一応、上書き禁止でGrep検索結果を得ることが出来ましたが、肝心の
その月の日記や記録の中身は上書き禁止では見ることが出来ません。
これだと、過去の大事な記録を壊す危険もあり、もう少し勉強が必要です。
>202001.txt(1)

setcompatiblemode 0x0F;
grepdialog2 "\\d{4}/[01]\\d/[0-3]\\d" , "*.txt" , "G:\\wDiary\\MyDiary" , re
gular, word, subdir,filelist ,hilight;
readonlyswitch;
endmacro;

[ ]