無料ブログはココログ

カテゴリー「7. 200LXの操作(シスマネ外)」の144件の記事

2020年9月 9日 (水)

(883)VZeditorの一括変換機能を使って文を整形する(動画)

(883)VZeditorの一括変換機能を使って文を整形する(動画)

前項と前々項で動画をアップロードして面白かったので、動画ネタを探してまたアップします。
今回は、ビネガーシンドロームの液晶を修理して偏光板を使ってある予備の200LXを使いました。
前回のバックライトLXと比べると、画面中央部分に反射映り込みもあって、画面が見ずらいです。

以下の説明は、10年以上前にお話した「(64)smart clip の使い方を知らなかった」と
(279)smart clip でファイル出力して、vzでファイル整形する」と
(280)VZ 内部マクロを作る」を整理して書き直しました。
画像は最新のものにしましたので、今回のほうが理解しやすいと思います。

[総論]
以前から何回もお話していますが、私は行動記録としての日誌をテキスト文字で保存しています。保存期間は30年以上に及びます。紙の日誌と違って、デジタルテキストで保存してありますから、30年間の出来事を瞬時に検索できるようになっています。

日誌の中身は、(1)毎日の予定(Apointment)、(2)処理済みのTODO(DataBase)、(3)行動記録としての日誌(NoteTaker)です。
 
33399_20200909004401
図は、今年の8月のNoteTakerです。このように、思いついたときにいろいろなことを記録します。

(3)NoteTakerには、体調の変化などの健康の記録や、日々考えたこと、新聞や雑誌の記事、読んだ本の内容、など雑多なものが含まれています。

(1)(2)(3)とも書式は同一です。一行の冒頭に日付を入れてあって、そのあとに1000byte以内の文字列が続きます。
-----------------
20/09/08 200LXブログに動画入りの内容をアップロードした。なかなか面白い。
-----------------
というような形式です。

(1)(2)(3)を統合して、日付順にsortしたうえで、3ヶ月ごとにひとつのファイルにして、アーカイブしています。

[検索について]
検索は izgrep を使うことが多いのですが、ほかの grep系のプログラムを使うこともあります。
どんな検索プログラムにしても、一件が一行になっていないと、検索がヒットしても作成した「日付」がわからない記録になってしまいます。

記録が膨大で1000byteを超えるようだと、1000byte以内のファイル容量に分割しています。
同じ日付の記録が複数あっても、まったく問題がないのですが、日付が入っていないと困ります。

[今回の動画について]
今回の動画では、NoteTakerのNote部分に記入してある文を、ファイルに書き出し(Print out)してから、VZエディターのマクロプログラムを使って、一行にまとめる動作を撮影しています。

つまり、
----- Note -----
日付 文章1
文章2
文章3
文章4
-----------------

----- Note -----
日付 文章1 文章2 文章3 文章4
-----------------
という形式に整形しています。

具体例をあげて説明しますと、
Aug98_20200909004001
Note 部分には、このような形で記入してあります。それを
Scrn0004_20200909004001
このような一行の形に変換するということです。

[ファイルへの書き出し]
1. Noteに記載してある内容を smart clip 機能を使ってファイルに書き出します。
33397
2. 書き出すときには、Note内の改行に「|||」という無意味な文字列を加えます。
Scrn0001_20200909005601
Note の最後に無意味な「|||」をついていることがわかります。
文を整形するためにこんな無意味な文字を入れています。

[改行を除去して整形する」
3. VZeditorのマクロを使って、「|||」を置換除去します。

33392
整形する方法はちょっと込み入っているのですが、ひとことでいえば「Note内の改行を除去する」ということです。トリックのような置換方法で、改行を除去しています。

[蛇足]
20200823_160053278
上のNoteTakerのNote部分にあったのは、この新聞広告をテキスト化したものです。
敬愛の大きな流れを把握できるようにと、「日経ヴェリタス」の見出し(新聞広告)をテキスト化して200LXに蓄積しています。

説明が長くなりすぎたので、いったん終了にします。

1.~3.の手順については、上に上げた
「(64)smart clip の使い方を知らなかった」
「(279)smart clip でファイル出力して、vzでファイル整形する」
「(280)VZ 内部マクロを作る」
も参照してください。

2020年6月28日 (日)

(852)SDカードの読み書きスピード

(852)SDカードの読み書きスピード
 
HP200LXを小型情報端末として常時携帯して活用しています。200LXはWindowsパソコンなどとの間で、簡単にファイルを移動・コピーできるので、そういう面でとても便利な道具です。
 
200LX本体には4GBのSDカード挿入して使っていますが、ファイルの移動にはもっと小容量のSDカードを使います。
むかし使っていた小容量のSDカードが余っているので、それをデータ移動用に使っています。
Img_20200627_210802
SDカード経由でファイルを移動しているときに、SDカードによって読み書きのスピードが違うことが以前から気になっていました。あるSDカードは読み書きが速いのに、別のSDカードはとても遅いのです。
 
そこで、今回、手持ちのSDカードの書き込みスピードを比べてみました。
(以前にも同じような趣旨でお話したことがあります)「(481)SDカード書き込みに要する時間」 2010.08.28)
http://we-love-200lx.cocolog-nifty.com/blog/2010/08/sd-df8b.html
 
ファイル移動用に使っているSDカードは写真のように、いちばん小容量の8メガから256MBまでの9枚です。
 
今回、システムマクロを使って各SDカードの書き込みスピードを測定しました。ただ、200LXのストップウォッチがマクロではムースに動作しなかったので、多少の誤差が入ってしまいました。
7899
測定結果は、この表のように、一番速いもので36秒、遅いもので63秒でした。倍くらいのスピードの差があることがわかりました。
 
測定してみた結果、ultra II という256MBのSDカード(写真の最上段)(赤線)がいちばん速いことがわかりましたので、今後は、ファイルの移動にはこのSDカードをメインに使っていこうと思います。
 
次に速いグループが写真中段(青線で囲いました)の4枚です。まぁまぁの測度です。これらのSDカードは2か所の書斎の置いておいたり、移動用カバンの中に入れておきます。
 
遅いのが下段の4枚でした。これらはファイル移動用というよりも、ファイル保存用として使うことにします。
 
測定した結果を見てちょっと不思議に思ったのは、SunDiskの同じ128メガでも速い個体と遅い個体があったことです。また、Panasonicの古い8メガがソコソコの測度だったのも意外でした。
  
ついでなので、200LXで使っている4GBのSDカードの書き込みスピードも、同じ条件で測定してみました。
Img_20200628_190138
この3種類の中では、体感的に右側のmemoQが速いと思っていたのですが、真ん中のSiliconPowerが速いことがわかりました。これらは同じ4GBということになっていますが、容量もそれぞれわずかずつ(100MBくらいの差)違います。
 
私の200LXの使い方としては、読み書きする必要のあるファイルはCディスクに置いておき、あまり読み書きしないファイルをAディスクに置いています。
私はそういう使い方をしていますので、常時装着している4GBのSDカードについては、読み書きの速度をあまり気にかけてはいません。

(「内部/外部メモリの使い分け」(2006.04.28)でお話したことがあります)
http://we-love-200lx.cocolog-nifty.com/blog/2006/04/post_7c23.html
(私の200LXのファイル構成などは「(A01)初心者のための200LX一括設定」(2010.02.23)を参照してください)
http://we-love-200lx.cocolog-nifty.com/blog/2010/02/200lx.html 
 
----- 今回の内容に関連した有用な過去記事一覧 -----
 
(493)Kingstonの2GB SDカード 2010.10.28
http://we-love-200lx.cocolog-nifty.com/blog/2010/10/493kingston2gb-.html
 
☆(481)SDカード書き込みに要する時間 2010.08.28
http://we-love-200lx.cocolog-nifty.com/blog/2010/08/sd-df8b.html
 
(464)200LXで使える非SDHCの4GBSDカード 2010.06.15
  http://we-love-200lx.cocolog-nifty.com/blog/2010/06/464200lxsdhc4gb.html
  
(A07)このセットの特異な操作体系(6) 2010.02.24
http://we-love-200lx.cocolog-nifty.com/blog/2010/02/a076-7885.html
  
(151)200LXで使用可能なSDカード 2007.12.18
  http://we-love-200lx.cocolog-nifty.com/blog/2007/12/151200lxsd_5a49.html

2020年5月26日 (火)

(837)HP200LXで永井荷風(青空文庫)を読む

(837)HP200LXで永井荷風(青空文庫)を読む
 
2020年5月17日の日経新聞に永井荷風の記事が載っていました。
Img_20200525_193937   
タイトルは「世間体気にせず豊かな孤独」「散歩で養った鋭い観察眼」という見出しです。
 
記事は、「『ひとり暮らしのわがままな作家』。荷風には、そんなイメージが付きまとう。だが、彼の日記には、ひとり世帯が全世帯の3分の1を超える『おひとりさまの時代』、手本にすべきヒントがたくさん隠されている」という書き出しで始まっています。
Img_20200525_193852  
永井荷風のことは、私としては「ひとり暮らしの不良老年」としてあこがれています。以前から『断腸亭日乗』や代表的な著作を読んでみようと思っていました。
 
たぶん青空文庫に入っているんじゃないか? と思って検索してみたら、やっぱりありました。それでさっそく『断腸亭日乗』『つゆのあとさき』『ボク東綺譚』などをダウンロードしました。
 
私としては文章を読むのに、横書き表示よりも、新聞のように縦書き表示のほうが読みやすいです。(以前に「縦書きと横書き、縦読みと横読み 」でお話したことがあります)
それで、ダウンロードしたテキストファイルを200LXのVZエディターで加工して、200LXの上のjupiterという縦書き表示アプリで読むことが多いです。
 
もちろん文庫本の縦書き表示は読みやすいのですが、読みやすいように加工したテキストファイルを、200LXのjupiterで読むのも、けっこう読みやすいと感じています。
 
今回、私がどのように加工して読んでいるかをお話します。
4_dancho  
この画像は、ダウンロードした『断腸亭日乗』(第三巻)の冒頭を、200LXのファイラーで表示させたものです。
 
『正月元旦。[#「正月元旦。」は同行中見出し]』という部分が読みにくいので、vzエディターを使って、全巻で『正月元旦.[正月元旦]』というように変換しました。
また、『。』は『.』に変換してあります。すべての改行のあとに空行を入れました。
Scrn0001_20200525232301  
この画像は、200LXで縦書き表示した2枚の画像を加工して横に並べたものです。
jupiterで、このように表示して読んでいきます。
  
jupiterのことは以前にお話したことがあります(この項の下にリストがあります)。文庫本を読むのと同じように、200LXを縦に持って、縦書き表示を読みます。次のページに進むにはスペースキーを押します。ページを戻すときはスペースの下にあるピリオドを押します。次々にスペースキーを押すことで、軽快にページを繰っていくことができます。
Bokutoh  
こちらは『ボク東綺譚』の最初の部分をファイラーで表示させたものです。縦書き表示と比べると、横書きはちょっと読みにくいです。それと、私としては行間を空けるほうが読みやすいので、こちらでも空行を入れ、『。』は『.』に変換してあります。
Scrn0003_20200525232301  
は『つゆのあとさき』の冒頭部分をファイラーで表示させた画像です。
Tuyunoa  
下は縦書き表示させた画面を横に2枚並べて表示したものです。
Scrn0005_20200525232301  
やっぱり横書き表示よりも縦書き表示のほうがずっと読みやすいです。
  
以上のように、青空文庫からダウンロードしたテキストファイルを、自分にとって読みやすい形に整形した上で、縦書き表示のjupiterに表示させて読むことでかなり読みやすくなります。
  
このような形にして、ソファや椅子に座って読んだり、トイレにまで200LXを持ち込んで(笑)読んだりしています。
 
今回の永井荷風もそうですが、森鴎外とか夏目漱石とか、青空文庫にはすでに版権が切れた多くの文学作品がアップロードされています。手軽にダウンロードして読むことができるので、ありがたく読ませていただいています。
   
HP200LXでの横書き表示と縦書き表示については、以前にもお話したことがあります。
 
=================
縦書きと横書き、縦読みと横読み
http://we-love-200lx.cocolog-nifty.com/blog/2006/05/post_02b4.html

(60)シスマネアプリのnoteを縦書きで読む
http://we-love-200lx.cocolog-nifty.com/blog/2007/03/60note_b03f.html
   
(180)jupiter(縦書き表示)のセッティング
http://we-love-200lx.cocolog-nifty.com/blog/2008/01/180jupiter_ca34.html
 
(181)jupiter(縦書き表示)のセッティング.2
http://we-love-200lx.cocolog-nifty.com/blog/2008/01/181jupiter_9a50.html
  
 
 

2020年1月 7日 (火)

(814) 文を書いているときに、うまく保存できずに悔しい思い

(814) 文を書いているときに、うまく保存できずに悔しい思い

10年くらい前に、
「(462)200LXクリップボードの履歴を残す(1)」「(463)200LXクリップボードの履歴を残す(2)」で、削除した文字列を、ふぃあさんのnoteという簡易エディターに、一時的に保存することをお話しました。
書いた文字列が消えてしまって悔しい思いをしたために、削除した文字列をバッファに溜めておくことにしたという話です。

このシステムは現在も機能しているのですが、数日前に文章を消してしまってまた悔しい思いをしました。
せっかく書いた文章が消えてしまうと、やる気が失せてしまって、もう同じことを書く気がなくなります。
原因は、ふぃあさんのnoteが満杯になっていて、クリップボードの履歴を残せなかったためでした。

そこで、いままでのシステムをちょっと手直しして、日付が変わるときにふぁいあさんのnoteをカラにして、別のファイルとして保存することにしました。(一日だけ保存しておいて、翌日は上書きしてしまいます)

2296
ふぃあさんのnoteは[-.BG]というファイル名にしてあって、ゴミ箱フォルダーの中に作っています。
ゴミ箱はリセットするたびに移動して、数回のリセットで消失するようにしてあります。
(「ゴミ箱システム」のことは、「(75)ゴミ箱システム」を参照してください)

このふぃあさんのnoteは50行までの容量しかありませんが、一日の初めにカラになっていれば、その日のうちは満杯になることは少ないだろうと考えて、このようなやり方にしました。

200LXのシステムのちょっとした手直しなので、お話するほどのことでもないのですが、自分用のメモ記録のつもりで書いておきます。

この手直しのことをひとことで簡単に言うと、午前0時ころに起動するバッチファイルに、ふぃあさんのnoteをカラにすることを付け加えただけのことです。

以下にもうちょっと詳しく説明します。

2299
私は、毎日11:50pmに起動するバッチファイルで、C:全体をSDカードに圧縮バックアップするようにしています。
このことは、「(173)ついでにバックアップのこともお話しておきます」「(395)一定時間後に200LXにプロテクトをかける」でお話しました。
この定時起動のバッチプログラムは、a:\--noon--.bat というファイル名です。

このバッチプログラムの末尾の方に、
2297
---------------
copy C:\FINDER\TRASH\-.BG a:\temp\note.txt
del C:\FINDER\TRASH\-.BG
---------------
と2行付け加えました。

ふぃあさんのnoteのファイル(-.BG)をnote.txtというファイル名にしてSDカード(A:\)にrenameして保存します。
そして元のファイルは削除してしまいます。
ただそれだけの動作なんです。

これで、毎晩定時に。ふぃあさんのnoteが別のファイル名で保存されて、noteはカラになります。
たぶん、一日のうちでnoteが満杯になることはあまりないだろうと考えています。
せっかく書いた文章が消えてしまって悔しい思いはしたくないです。

2018年1月24日 (水)

(729)「MQどす」を使って200LXからスマホに文章をエクスポートする

(729)「MQどす」を使って200LXからスマホに文章をエクスポートする

以前に200LXから携帯電話に文章をエクスポートすることをお話したことがあります。

0001今回は携帯電話にではなく、スマホに200LXから文章をエクスポートする話です。

私の場合、今でもHP200LXが個人の情報管理の中心になっています。自分の情報は200LX内でほとんど完結しているのですが、たまにスマホにエクポートしておきたいことがあります。そういうときに今回お話する方法を使います。

マクロプログラムの細かい設定などは、末尾にリストアップしてある(554),(557),(558)を読んでいただくのが良いので、ここでは、「MQどす」を利用する方法を簡単にお話します。

私は、自分が考えたことや日々の記録を、HP200LXのシスマネアプリのNote領域に書いています。そのため、スマホにエクスポートする文章は、Note領域にあるものをエクスポートすることが多いです。

以下がその具体的な手順です。

(1) エクスポートしたいレコードにカーソルを置いておいて、[Fn]+[F9]を押します。すると、[F9}のシステムマクロによって、Noteフィールドの文章が 0000c:\0000.txt というファイルにエクスポートされます。
 私の場合、この0000.txtというファイル名で、200LXからエクスポートしたり、インポートしたりしています。
 ファイル名キメウチということです。
 [F9]のシステムマクロの記述内容は、以下の1行です。
-----------
{F3}{F2}c:\0000.txt{F10}{F10}{Filer}{Filer}0000.txt
-----------

0002(2) バーコード表示するために、ファイラーから[-2bat.bat]のバッチプログラムを起動します。
 バッチの内容は、左図のようになっています。

(3) このバッチプログラムがで、200LXの画面に2次元バーコードが表示されます。

170720_2(4) スマホ側で、左図のバーコード読み取りアプリを起動します。

200834(5) 200LXの液晶画面に表示されたバーコードを読み取らせることで、日本語文章に変換されます。

(6) 文章が表示されている状態で、左図のように文章をクリップボードに取り込みます。

(6) 文章をクリップボードに取り込んでしまえば、あとはKEEPなどのような文章管理アプリケーションにコピペすることができます。

また、ブログ記事を200LXで書いておいて、スマホ経由でアップロードするなどのことができますし、クラウドにアップすることも自由自在です。

(参考)

(554)200LXで二次元バーコード生成 

(557)200LXで2次元バーコード(続報) 

(558)祝! 200LXでQRコード表示するプログラムが公開されました。 

2016年7月30日 (土)

(680)キーボードマクロが使えるストリームエディタ (2)。

(680)キーボードマクロが使えるストリームエディタ (2)。

前項の続きです。実際にキーボードマクロを作って、それを埋め込んだ自動実行マクロファイル(defファイル)を作ります。そして、自動実行してみます。

Scrn0000今回使用するテキストファイルは、私のNoteTakerの内容をアウトプットしたファイルです。
===============
07/10/16  1:21 am DATA) 米雇用一転急回復.失速リスクひとまず回復
07/10/16  1:22 am DATA) 米、迎撃システム韓国配備.北朝鮮の暴発抑止.
07/10/16  1:26 am DATA) 米警官撃たれ5人死亡.黒人射殺に報復の可能性.
07/12/16  2:57 pm LX) 200LX底蓋のストラップをつけるあたりに割れがある.
07/15/16  3:33 pm 健康) どうも最近左目にメヤニが出る.見にくくなってくる.
07/27/16 10:35 am 健康) 左肩の痛みはだいたい引いたから、関節ではなく
07/27/16 10:41 am LX) 引越リストはとうめんtodoで管理する.
07/28/16  8:59 am IDEA) 男らしさと粗野・粗暴とは違います.女らしさと女々しさ
===============

上記のように、200LXの年月日の形式では、
>07/30/16 きょうは200LXブログの更新をした。
というように、月・日・年の並びになっています。

しかし、日誌ファイルを年・月・日の順でソートするためには、200LX形式の月・日・年の並びでは都合が悪いです。
>16/07/30 きょうは200LXブログの更新をした。
のように、年・月・日の形に変更する必要があります。

この変更を前項でお話したVZエディターのキーボードマクロを作って、自動実行させようと思います。
(この例は9行ですが、実際のファイルでは1000行近くあるのです)

実際にキーを押すのは、
[Right][Right][Right][Right][Right][Del][Del][Del][Ctrl+Left][Ctrl+v][Ctrl+v][Right][Right][/][Ctrl+Right][Right]
ということになります。

つまり、行頭から始めることとして、右矢印を5回押すことで、カーソルを「/16」の「/」の場所まで移動させ、[Del]キーを3回押すことで「/」「1」「6」の3文字をバッファに取り込みます。(この状態で「07/10/16」が「10/16」になっています)
次に[Ctrl+Left]を押してカーソルを行頭にジャンプさせて、[Ctrl+v]を2回押すことで、「16]をバッファからその場に取り出します。(この状態で「1607/10」になっています)
次に右矢印を2回押してから「/」を書き込みます。(これで「16/07/10」になりました)
最後に[Ctrl+Right]で行末にジャンプし、[Right]を押すことでカーソルを次の行頭に移動させて、終了とします。

このようにして、カーソルが行頭にある状態から始まって、一連の処理を行って、最後にカーソルが次の行頭に移動して、マクロ終了とするわけです。

このような処理で「07/10/16」から「16/07/10」に形を変えます。

VZエディターでのキーボードマクロは、
============
90 ^^ "" #d#d#d#d#d#g#g#g&12#u#u#d#d"/"#>#d
============
となっています。行頭の90というのは、[ctrl]+[6]のことです。「^^ ""」は無視してください。「#d#d#d#d#d#g#g#g&12#u#u#d#d"/"#>#d
」は暗号のようですが、キーを押した順番が表示されています。

例をあげれば、「#d」というのが右矢印の[Right]に相当し、「#g」というのが[Del]に相当します。

Scrn0003前項で示した repeat.def は下記のように変更させます。


========repeat.def ========
* M マクロ

85 "CTRL+\を繰り返す"   ;[ESC]^で外部マクロが使える。
:L            ;ここに^K_でCTRL+6のキーボードマクロをいれる
#d#d#d#d#d#g#g#g&12#u#u#d#d"/"#>#d

            ;VZ.DEFのあるディレクトリにREPEAT.DEFの名前で
            ;保存してください。
            ;呼び出すときは、「ESC」の後で、「^」です。
    (r<0)? >E    ;ファイル最後(OR文字列検索が見つからない)
            ;に達したら終了
    >L        ;
:E            ;
    #^        ;文頭にジャンプ

* P メニュー

1    "",36,1,30
    &85
*======== End of Add.def ========
ここで「#d#d#d#d#d#g#g#g&12#u#u#d#d"/"#>#d
」が変更されています。

Scrn0004あとは、VZエディターでファイルを読み込んでおいてから、行頭で repeat.def を実行させます。


Scrn0002それで、




===============
16/07/10  1:21 am DATA) 米雇用一転急回復.失速リスクひとまず回復
16/07/10  1:22 am DATA) 米、迎撃システム韓国配備.北朝鮮の暴発抑止.
16/07/10  1:26 am DATA) 米警官撃たれ5人死亡.黒人射殺に報復の可能性.
16/07/12  2:57 pm LX) 200LX底蓋のストラップをつけるあたりに割れがある.
16/07/15  3:33 pm 健康) どうも最近左目にメヤニが出る.見にくくなってくる.
16/07/27 10:35 am 健康) 左肩の痛みはだいたい引いたから、関節ではなく
16/07/27 10:41 am LX) 引越リストはとうめんtodoで管理する.
16/07/28  8:59 am IDEA) 男らしさと粗野・粗暴とは違います.女らしさと女々しさ
===============
に変ります。

今回は、「自動実行」の例として、一行の中にある文字の位置を変えることお話しました。
しかし、じょうずに工夫すれば、同じことようなを「文字列置換」でも行うことができます。
私の場合、通常は文字列置換で処理しています。

2016年7月29日 (金)

(679)キーボードマクロが使えるストリームエディタ (1)。

(679)キーボードマクロが使えるストリームエディタ (1)。

ストリームエディタでキーボードマクロが使えるはずがないですよね~(笑)。
ですから、今回の記事のタイトルは自己矛盾を含んでいます。
まぁ、はっきり言ってウソです(笑)。

真意は、「VZエディターを使ってストリームエディタで行うのと同じようなことをする」「その場合にキーボードマクロを利用することができる」ということです。

「ストリームエディタってなんのこと?」「何ができるの?」っていう方のために、先にBlueSkyの説明を書いておくと、、、
「ワープロやエディターで書いたり読み込んだりできるファイルに対して、同じ処理を、一行ずつ自動的に行うことができるデバイスプログラム」ということです。
(あとで、ウィキペディアからストリームエディタの定義を引用します)

ここで、「ワープロやエディターで書いたり読み込んだりできるファイル」といっているのは、テキストファイルのことです。

キーボードマクロのことはもうご存知ですよね。
テープレコーダーで声を一度録音したら、あとは何回でも再生できるのと同じように、200LX上でキーボードを押す動作を一回登録することで、何回でも同じ動作を行うことができる方法です。

さて、具体的な話に進みます。

今回お話するのは、VZエディターの上で、
(1) あらかじめ、繰り返し処理のためのdefファイル(マクロプログラム)を用意しておいて、
(2) 一行処理の手順をキーボードマクロで記録して、
(3) そのキーボードマクロをdefファイルに埋め込んで、
(4) VZエディターの上で、その外部マクロのdefファイルを実行させることで
(5) ストリームエディタで処理するのと同じようなことをする
ということです。

ところで、「ストリームエディタ」をwikipediaで検索すると、
>ストリームエディタ (英: stream editor) は、テキストエディタの一種であり、テキストをあらかじめ指定した手順により一括処理(バッチ処理)を行うソフトウェアである。
>ストリームエディタとしては、AWK、Perl、Ruby、Pythonなどのスクリプト言語を使用できる。
 と書いてあります。

処理するには、「あらかじめ指定した手順」が必要なんです。
その手順に従って「一括処理(バッチ処理)を行う」わけです。
もっとも有名なのは、sedですかね。(Stream EDitor の略でしょうか)

で、そのsedについては、
「sed basics - ストリームエディタの基礎」のサイトに、
http://www.aihara.co.jp/~taiji/unix-tips/a2asterisk/sed-howto-0.html
>ストリームエディタ sed は一行ずつ入力しフィルタする。スクリプトを指定することにより様々な編集を施すことができる
>利用者は、パターンスペースと呼ばれるバッファに対して、コマンドにより、文字置換や正規表現による置換が出来る。
 と(難しいことが)(笑)書いてあります。

一方で、wikipediaのストリームエディタ」の項では、スクリーンエディタについて、
>これに対して、スクリーンエディタやラインエディタは、人が対話的に使用するエディタである。
 と書いてあります。
スクリーンエディタっていうのは、BlueSkyの説明では、「プリントアウトできないワープロプログラムのこと」です。ここで説明しているVZエディターがこれです。
ラインエディタっていうのは、たった一行しか書けない(笑)エディタのことです。

sedなどのストリームエディタというのは処理「言語」ですから、その「言語」の習得が必要です。言語をある程度学習・習得して、正規表現による「スクリプト」を書ける必要があります。(その場でコマンドを書いて処理もできます)

今回の話は、まったく学習・習得しないで、ストリームエディタで処理するのと同じようなことをスクリーンエディタであるVZエディターでしている、その方法のことです。

で、すぐ本題に入ります。

I. VZエディターで、キーボードマクロを記録し始めるには、[ctrl]+[-]を押します。
キーボードを押すことで一連の処理を行ったあと、キーボードマクロを終了させるには、[ctrl]+[6]を押します。
(ほんとうは、[ctrl]+[6]だけじゃなくて、、[ctrl]+[ナントカ]のキーでも良いのですが)
(私の場合、ほかのキーとバッティングしないように[ctrl]+[6]としています)

これで、一連の動作(キーボードマクロ)が記録されます。(テープレコーダでいえば「録音」です)
同じ動作を実行するためには、[ctrl]+[6]を押します。(テープレコーダでいえば「再生」です)

すごく簡単なこの動作(録音)ができれば、同じ動作を何回でも繰り返すこと(再生)ができるわけです。
これは、200LXシスマネのシステムマクロとほとんど同じです。

キーボードマクロというのは、システムマクロと同じように、「自動実行」ではなく「手動実行」です。手動で[ctrl]+[6]を押すことで実行されます。

II. 次に、「自動実行」の話に進みます。

キーボードマクロの実行手順は、じつは、VZエディタの中に記録されています。
それを下に示す repeat.def の指定の場所に書き出すことで、「自動実行」のプログラムを作成することがでるんです。

Scrn0001その repeat.def の内容は以下のとおりです。「REPEAT.DEF」をダウンロード

========repeat.def ========
* M マクロ

85 "CTRL+\を繰り返す"   ;[ESC]^で外部マクロが使える。
:L            ;ここに^K_でCTRL+6のキーボードマクロをいれる
#c#<"@@"&13
            ;VZ.DEFのあるディレクトリにREPEAT.DEFの名前で
            ;保存してください。
            ;呼び出すときは、「ESC」の後で、「^」です。
    (r<0)? >E    ;ファイル最後(OR文字列検索が見つからない)
            ;に達したら終了
    >L        ;
:E            ;
    #^        ;文頭にジャンプ

* P メニュー

1    "",36,1,30
    &85
*======== End of Add.def ========

私自身が、このマクロの使い方を忘れちゃうことがあるので(笑)、使い方そのものをこのファイルの中に書き入れてあります。

1. 自動実行ファイル(defファイル)の作り方。

上に書いてあるように、前もって、この repeat.def をVZ.DEFのあるディレクトリに保存しておきます。

このdefファイルをVZに読み込んでおいて、上から4行目の「#c#<"@@"&13」が書いてあるところに、すでに記録してあるキーボードマクロ書き出します。
キーボードマクロの書き出し方は、ここに書いてあるように[ctrl]+[k]を押してから、[shift]+[-](アンダーバー)です。
前に書いてある「#c#<"@@"&13」は削除します。(前回マクロを使ったカスなのです)

たったこれだけで、新しい自動実行プログラムの作成は終了です。
書き直した repeat.def は、同名でも別のファイル名でもよいですから、保存しておきます。

2. 自動実行の方法。

キーボードマクロを記録した時に、実際にそのマクロがうまく動作することを確認しておく必要があります。
つまり、そのキーボードマクロを何回も実行してみるということです。
10回程度実行するだけなら、もともと、自動実行プログラムを作る必要がないです。

何百回とか何千回も同じ動作を実行したい時に、自動実行プログラムの意味があります。

キーボードマクロは、カーソルが行頭にある状態から始めます。そして、その一行について処理を行ったら、最後にカーソルを行末に移動させて、最後の最後に次の行の行頭に移動して終了となるようにしておきます。

つまり、キーボードマクロを、一行について処理をして、また、次の一行について処理をして、、、と一行ずつ処理するように構成しておきます。
一行ごとのその処理行為を、文末にブチあたる(エラーになる)まで、えんえんと何回でも実行せよというプログラムなんです。たんにそれだけの機能です。

(繰り返しの)自動実行を開始するには、(単発の)(手動実行の)キーボードマクロを実行する代わりに、[ESC]を押してから[shift]+[quicken]を押します。

すると、どのdefを選ぶかの画面になりますから、この repeat.def を選んで「enter]を押します。

3. すぐに実行が始まりますから、あとは自動実行マクロが終了(ストップ)するのを待ちます。

ここには詳しく書きましたが、じっさいにやってみればごく簡単な手順です。

もしも「やり方」を忘れたら、この repeat.def を vz に読み込んで、やり方を思い出せば良いだけです。

以上で、「キーボードマクロが使えるストリームエディタ」の話は終了っ。

次の項で、実際に使ってみることをお話します。

2016年7月22日 (金)

(676)検索して、目的とする記録が見つかってからの処理。

(676)検索して、目的とする記録が見つかってからの処理。

今回のお話は、HP200LXの修理情報など違って、読んでくださるみなさまのお役にはほとんど立たないかも知れません。しかし私としては大きな気付きだったのでお話しようと思います。

今回の話題は、「(670)HP200LX上で、複数の検索語で検索する」
http://we-love-200lx.cocolog-nifty.com/blog/2016/06/670hp200lx-db0a.html
の続編です。

(670)では、以下のように書きました。
>私の日誌情報はデジタルで日誌をデジタルで書くようになってからの約25年間の情報です。
>一日に10件くらいの日誌情報を書きますので、10万件くらいになっています。
>一件が100文字くらいまでの記録もありますし、1000文字を超えるような記録もあります。
>複数のキーワードで検索する必要があるのは、一件の日誌記録に多くの文字情報が入っている記録です。

実は、私が複数の検索語で検索したい記録は、文字数が少ない記録ではなく、文字数が多い記録なんです。

日々の雑事の記録は文字数が少ないです。文字数が多いのは、読んだ本の内容を書き留めている「読書記録」とか、その日の武道稽古の内容を詳しく記録した「稽古記録」などです。

文字数が多い記録は、もちろん多くの「行」を含んでいるのですが、検索の都合上「改行」を削除してあります。えんえんと文が続く形式になっています。

5006iこれは左の図を見ていただくほうが話が早いです。この中の数字は本の行数を示しています。
でも、この画面のように、は改行のない文字列は読みにくいですね~。
検索するのにはとても都合が良いのですが、検索で見つかってからがたいへんです。この見つかった行を読みやすくするまでの処理が面倒でした。

5004g(670)の記事を書いたあとで気がつきました。「NoteTakerに記録が残っているのだから、NoteTakerからテキストファイルにエクスポートすればいいじゃないか!」ということです。

このことを、生のイカと干物のスルメを例にしてお話してみます。
NoteTakerの記事はイカの状態です。それを、検索がしやすいようにスルメの状態に変形してあるんです。
生のイカを干物スルメにすることで、長期間保存できるようになりますね。それと同じように、検索の目的でNoteTakerの記録を変形してあるわけです。
変形してある記述を読みやすくするために、干物スルメを水にでも漬けて、生のイカにもう一度戻そうと考えていました。

5002eもう一度考えなおせば、保存されている過去のNoteTakerファイルには、元の記述が残っています。
検索によって、目指す記述が見つかったのですから、年月日と内容を手がかりにして、過去のNoteTakerファイルを呼び出して、そのページをファイルに書き出せばよかったのです。

干物のスルメを水につけるみたいな、変形圧縮した記述を読みやすくする必要はなかったのです。

NoteTakerのファイルとかページを呼び出す手順は、VZエディターのマクロやシステムマクロを使いますので、その手順のことは今回は省略しておきます。

さて、NoteTakerの目指すページが見つかったあとことに話を進めます。

5007j見つかったページをテキストファイルにエクスポートする手順は、[menu]→[file]→[print]と押して、適当なファイル名を記入するだけです。

Ncrn0000このようにテキストファイルに書きだされたあとは、普通に読むこともありますし、VZエディターでさらに加工することもあります。

下の図のように縦書き表示ビューワーのjupiterで読むこともけっこう多いです。

Ncrn0004

Mcrn0003_2

Lcrn0002_2

2016年7月 1日 (金)

(672)バッチプログラムで「あいまい」検索を処理する。

(672)バッチプログラムで「あいまい」検索を処理する。

2つ前の発言で、複数の検索語で検索するためのバッチファイルのことをお話しました。
複数のキーワードで検索することは、google検索と同じように「積集合」(and検索)であることを図で説明しました。
(670)HP200LX上で、複数の検索語で検索する
http://we-love-200lx.cocolog-nifty.com/blog/2016/06/670hp200lx-db0a.html
の記事のことです。

それが「積集合」なら、約2年前にお話した「あいまい」検索は「和集合」(or検索)ということになります。
(650)個人データの検索は「あいまい」検索で、することになるか 14/03/10 記事
http://we-love-200lx.cocolog-nifty.com/blog/2014/03/650-e208.html
の記事のことです。

今回の記事は、上記の「あいまい検索」の続編の意味があります。

Img_4199


「あいまい検索」の「和集合」のことも、(670)の記事と同じように図で説明してみましょう。(670)の記事と同じキーワードとして図を書いてみれば、左の図のように赤い線で囲った内部の集合のことです。

この「和集合」(or検索)も「積集合」(and検索)と同じように、イッパツで処理できるようにバッチプログラムを作りました。

 今回作ったバッチプログラムは、
======= -aimai3.bat =======
c:\bin\IZGREP %1 a:\vz\kjog1*.don >>c:\0new-iz.txt
c:\bin\IZGREP %2 a:\vz\kjog1*.don >>c:\0new-iz.txt
c:\bin\IZGREP %3 a:\vz\kjog1*.don >>c:\0new-iz.txt
rem
rem 以降は検索語を多くした場合の予備行
rem
;c:\bin\IZGREP %4 a:\vz\kjog1*.don >>c:\0new-iz.txt
;c:\bin\IZGREP %5 a:\vz\kjog1*.don >>c:\0new-iz.txt
;c:\bin\IZGREP %6 a:\vz\kjog1*.don >>c:\0new-iz.txt
sort <c:\0new-iz.txt >c:\1new-iz.txt
exit
rem 201*のdonファイルに対してあいまい3(6)語検索をかける。
rem ソートして並べ変える。
============================
という内容です。

このバッチプログラムと実際に使うときは、「(670)HP200LX上で、複数の検索語で検索する」でお話したやりかたとほぼ同じ方法です。

  コマンドラインで、
  -aimai3 秋子 あきちゃん アキ
  と入力して、[return]を押します。

これで、3つのキーワードで検索した和集合が得られます。
見やすいように、日付順でして目的達成ということになります。

「あいまい」検索の場合は、各キーワードで抽出した集合の間の重なり合う部分は、ほとんどないのですね。

2016年6月29日 (水)

(670)HP200LX上で、複数の検索語で検索する。

(670)HP200LX上で、複数の検索語で検索する。

google検索では複数のキーワードで検索できますが、200LX上のgrep検索では、一つのキーワードでしか検索できません。
20年くらい前から複数のキーワードで検索できないかと試行錯誤していまして、最近、やっとできるようになったのでお話しようと思います。

以前は、MS-DOSバッチプログラムの「パイプ機能」で処理しようとしていました。
しかし、どうも私のやり方が悪いらしく、うまく「パイプ機能」を使えません。
今回は、「パイプ機能」を使うことをあきらめて、すなおなバッチプログラムにすることで解決しました。

複数のキーワードで検索するために今までやっていた方法は、まず一つのキーワードで検索してファイルに出力し、そのファイルに対して二番目のキーワードで再度検索して別名のファイルに出力し、さらに三番目のキーワードで検索をかけて最終的に必要な行を抽出するというやり方でした。

これらのことをひとつのバッチプログラムにまとめました。
20年越しくらいの問題がやっと解決したわけです。

まず、複数のキーワードで検索するということを、例をあげて説明しましょう。

たとえば、google検索で、「200LX」「solver」「手取り額」という3つのキーワードで検索をかけると、このブログがヒットします。

Img_4189こういうことを図で説明すると、大きな情報の海の中から、[200LX」に関連したサイトの集合と、「solver」に関連したサイトの集合と、「手取り額」に関連したサイトの集合の積集合(赤く塗ってある領域)を見つけ出すということです。

私が問題にしていたのは、自分の膨大な日誌記録の中から、該当する記録を探し出すことです。
私の日誌情報はデジタルで日誌をデジタルで書くようになってからの約25年間の情報です。一日に10件くらいの日誌情報を書きますので、10万件くらいになっています。

一件が100文字くらいまでの記録もありますし、1000文字を超えるような記録もあります。複数のキーワードで検索する必要があるのは、一件の日誌記録に多くの文字情報が入っている記録です。

ここで、私の日誌記録について、ちょっとお話しておきます。
 1. 記録はすべてプレーンなテキストファイルです。
 2. 一件が一行になっています。行末はリターンがあるということです。
30023. 行頭に「16/06/29」のように日付けを書き込んであります。
  (同じ日付の複数の行があることもあります)
   (日付けに続いて、時間も書き込むことがあります)
 4. 日付以降は本文です。記録のなかでは、改行なしで文が続いています。
  (改行なしなので長文は読みにくいです。必要に応じて「。」を「。改行」と置換して読むことがあります)
 5. 3カ月ごとに一つのファイルにまとめてあります。
3001  (2015年の記録だと、kjog15a.don, kjog15b.don, kjog15c.don, kjog15d.donという4つのファイルに分かれています)

3000(これらの日誌記録は、約25年で100ファイルくらいになっていて、別に圧縮ファイルでも保存してあります)

さて、上記の複数のキーワードで検索することに話を戻します。

日誌記録の中から、最終的に3つのキーワードを含む行を抽出したいのです。

私は腰痛持ちなので、「健康」「腰痛」「コルセット」という3つのキーワードを含む行を抽出するとします。

 1. まず、一つのキーワード「健康」という語で、100ファイルに関して検索をかけます。
   私は検索にizgrepという検索プログラムを使っているので、
   c:\bin\IZGREP 健康 a:\vz\*.don >> c:\0all-iz.txt
   という書き方になります。
  (この「>>」の記号は「>」と違って追加書き込みという意味です)

 2. この c:\0all-iz.txt のファイルに「健康」というキーワードを含む行が抽出されていますので、このファイルに対して、2番目のキーワード「腰痛」という語で検索します。
   c:\bin\IZGREP 腰痛 c:\0all-iz.txt > c:\1new-iz.txt
   というような書き方になります。

 3. さらにこの c:\1new-iz.txt というファイルに対して、「コルセット」というキーワードで3回目の検索をかけます。
   c:\bin\IZGREP コルセット c:\1all-iz.txt > c:\2new-iz.txt

検索を3段重ねることで、「健康」「腰痛」「コルセット」という3つのキーワードを含む行が抽出されます。

 今回作ったバッチプログラムは、
======= -renzoku.bat =======
c:\bin\IZGREP %1 a:\vz\kjog1*.don >>c:\0new-iz.txt
c:\bin\IZGREP %2 c:\0new-iz.txt > c:\1new-iz.txt
c:\bin\IZGREP %3 c:\1new-iz.txt > c:\2new-iz.txt
exit
============================
 という内容です。
 (ここでは、2010年以降の記録に対して検索をかけています)
 (日誌記録を検索するのは、膨大な全記録よりも最近の数年間の記録について調べることが多いためです)
 (バッチプログラムはパスを通したディレクトリに置いてあります)

最後に、実際に検索する手順を書いておきます。
 1. [CTRL]+[123]を押して、dos窓に降ります。
 2. コマンドラインで、
  -renzoku 健康 腰痛 コルセット
  と入力して、[return]を押します。
 3. シスマネ環境に自動的に(バッチの末行のexitのために)復帰しますから、
 4. ファイラーで c:\2new-iz.txt のファイルを選んで内容を読みます。

「まとめ」
 私が約20年間もうまくできなかったのは、「パイプ機能」に固執していたからです。
 でも、もし、パイプ機能をうまく使えたとしても、「>>」と「>」の使い分けが難しいです。
 結果的に、今回作ったようなバッチプログラムが、もっとも単純で効率的なやり方でした。

 複数キーワードで検索するために、今までは何回にもわけて多段検索をしていましたが、このバッチを使うことで、簡単にできるようになりました。

「参考」 いままでの「日誌」と「検索」に関する記事一覧

(641)古い(デジタル)日誌に意味があるか? 14/01/11 記事
http://we-love-200lx.cocolog-nifty.com/blog/2014/01/641-a57d.html

(645)HP200LX での文字列「検索」-- 序章 14/03/05 記事
http://we-love-200lx.cocolog-nifty.com/blog/2014/03/645hp200lx----1.html

(646)HP200LX での「検索」は「子どもの潮干狩り」方式 14/03/05 記事
http://we-love-200lx.cocolog-nifty.com/blog/2014/03/646hp200lx-3f30.html

(647)HP200LX で「漁師の鋤簾」方式の「検索」 14/03/05 記事
http://we-love-200lx.cocolog-nifty.com/blog/2014/03/646hp200lx-b0de.html

(648) 検索: 簡単だけれど大ざっぱな方法 14/03/06 記事
http://we-love-200lx.cocolog-nifty.com/blog/2014/03/646-3c98.html

(650)個人データの検索は「あいまい」検索で、することになるか 14/03/10 記事
http://we-love-200lx.cocolog-nifty.com/blog/2014/03/650-e208.html

(424)ノートに記録するとどれくらいの分量に? 09/11/14 記事
http://we-love-200lx.cocolog-nifty.com/blog/2009/11/424-8e61.html

(439)JGREP2で、過去の記録を検索する 10/02/07 記事
http://we-love-200lx.cocolog-nifty.com/blog/2010/02/439jgrep2-4fad.html

(440)過去の(日誌)記録についてのまとめ 10/02/07 記事
http://we-love-200lx.cocolog-nifty.com/blog/2010/02/440-6cce.html

(230)ms-dosのパイプ機能を使って複数語で検索する(and 検索) 08/04/12 記事
http://we-love-200lx.cocolog-nifty.com/blog/2008/04/230msdosand_7797.html

(223)MS-DOS上での検索について 08/03/22 記事
http://we-love-200lx.cocolog-nifty.com/blog/2008/03/223msdos_8770.html

(224)izgrepをどのように使うか? 08/03/22 記事
http://we-love-200lx.cocolog-nifty.com/blog/2008/03/224izgrep_cdd6.html

(83)日誌記録の形式について 07/04/25 記事
http://we-love-200lx.cocolog-nifty.com/blog/2007/04/83_c508.html

(35)予定・実行・記録・検索 06/05/03 記事 紙の手帳と比較して。 06/05/03 記事
http://we-love-200lx.cocolog-nifty.com/blog/2006/05/post_da04.html

日誌はNoteTakerで 06/05/03 記事
http://we-love-200lx.cocolog-nifty.com/blog/2006/05/notetaker_df35.html

より以前の記事一覧