ChaichanPapa-World !

燈明日記(2007/07

◆ インデックス

◆ 2007年7月

■ 2007-07-31 親と新

親という字は、木の上に立って子供の様子を見守っているのが親なので、

そのような形になったと言われています。本当にそうでしょうか?

しかし、それだと新という字の説明が出来ないのです。


漢字起源では、新は、辛と木と斤で出来た字です。

辛は『投げ針』の象形で、投げ針を森へ投げて、針が当たった木を斤(オノ)で切った『物』は、新しいので、そこから新になりました。

また、親は木を切った『物』を見ている象形です。そして、木を切った『物』とは、実は位牌なのです。


新しい位牌は、親であることが多いので、そこから親になりました。

■ 2007-07-30 ソリューションの削除

意外と知らない、ソリューションの削除の仕方です。

ソリューション全体を完全に削除することもできますが、その場合は、Visual Studio は使用しません。ソリューションを削除する前に、別のソリューションで再利用するプロジェクトはすべて移動しておいてください。次に、Windows エクスプローラを使用して、2 つのソリューション ファイル (.sln および .suo) が格納されたディレクトリを削除します。


メモ :

.suo ファイルは隠しファイルであるため、Windows エクスプローラの既定の設定では表示されません。

http://msdn2.microsoft.com/ja-jp/library/zfzh36t7(VS.80).aspx

■ 2007-07-29 VB-TIPSページがヤフー登録!!

VB-TIPSのページを作り始めて、苦節約1年、やっとヤフーのVBディレクトリに登録されました!

はじめは、VBAを中心としていましたが、今では、WINDOWS全般のTIPSとなっております。


このページは、単なるマニュアルのコピーや、類似ページのパクリでなく、私自身が実際に体験したことや勉強の成果です。

よろしかったら、どうぞご覧下さい。

始めにWEBページを作った『ちゃいちゃんのページ』が1998年です。もう、10年が経とうしているのですね。

一時は、一日3万アクセス、グーグルページランク6まで行きましたが、プロバイダの都合で、そのURLが消滅……。


今は、徐々に復権しつつありますが、当初と比べて、ライバルが沢山で、なかなか這い上がれません。

でも、個人の趣味でページを作っていますので、あせらず、マイペースでやってきます。今後もよろしくお願い致します。


実は、ヤフー登録のページは、VB-TIPSページで3つ目です。

すでに、JavaScrptと法華経のページが各々のディレクトリに登録されています。


ヤフーディレクトリ

つぎは、Perlノートのページをと目論んでいます。皆さん、応援よろしくお願い致します。

■ 2007-07-29 止と夂と陟と降

すでに何度かご紹介しているように、漢字起源の時代は、神と人が渾然とした文化の時代です。

止と夂と降と陟の漢字もそのように成り立ちました。


止は、人の足跡の形がそのまま字形になりました。

夂も、人の足跡の形がそのまま字形になりました。

どこが違うかというと、止は上りで、夂は下りの足跡です。


実は、陟の少と降のヰも、それぞれ、上りと下りの足跡の形の字形です。

また、こざと偏は、神が神界と下界を昇り降りする階段の象形文字です。


したがって、

陟は、神が階段を昇っていくことを表した漢字なのです。

降は、神が階段を降りてくることを表した漢字なのです。

■ 2007-07-28 理性の宗教と感情の宗教

世の中には、実に沢山の宗教があります。

どの宗教も、幸せになることが目的の一つだと思います。

しかし、宗教がもとで争いが起こることもありますね。


これらの宗教は、『感情の宗教』なのです。

『感情の宗教』には、2つの欠陥があります。


それは、感情である『これは好き』、『これは嫌い』、という2つの欠陥です。

『これは好き』が高ずると、他の宗教を排除し、争いが起きるのです。

『これは嫌い』が高ずると、宗教をさめた目で『宗教は阿片なり』となるのです。


では、『理性の宗教』とは、どういうものでしょうか?

ハイ、それは、仏教です。


仏教は、感情的にこれを拝めとか信ぜよとか教えられたものではありません。

仏教は、因果の法則を説かれたもので、誰でも理性で理解ができるものなのです。


そう、仏教は

良いことをすれば、良い縁にふれて、良い結果になり、良い報いが来る

悪いことをすれば、悪い縁にふれて、悪い結果になり、悪い報いが来る

です!

■ 2007-07-28 又と取と最

すでに何度かご紹介しているように、漢字起源の時代は、神と人が渾然とした文化の時代です。

又と取と最の漢字もそのように成り立ちました。


又という漢字は、右という字の元の字形で、右手の指を出した象形文字です。

取という漢字は、左耳を右手で切り取る字形の字なのです。だから取るの意味なのです。


古代、戦争の際、討ち取った証拠に左耳を右手で切り取り、耳の数で戦功を数えたのです。

また、最も多く功績を上げた者のことを『最』といい、『取』の上の『日』は、沢山の耳の入った袋の象形なのです。


ちなみに、撮影の『撮』という字は、その耳の入った袋をつまむことを意味する漢字です。

■ 2007-07-27 grep演算子とmap演算子

Perlでは、配列を操作する機能が沢山あります。

その中でも強力なgrep演算子とmap演算子をご紹介します。


grep演算子は、以下のサンプルのように入力配列『@array』をテスト式『/a$/』で検索し、マッチした結果を返します。

結果は、左辺がスカラー変数『$count』の場合はマッチ数を、配列変数『@results』ならマッチした要素内容を返します。


サンプル
@array = ("aaa", "bbb", "ccc", "ddd", "dda");
$count = grep /a$/, @array;
@results = grep /a$/, @array;
print "\@result = @results  \$count = $count\n";
出力結果
@result = aaa dda  $count = 2

尚、テスト式『/a$/』は実は『$_ =~ /a$/』の省略形で、スカラーコンテキストで評価されます。

また、マッチしたとは、テスト式が真(0以外)を返した時です。


一方、map演算子は、grep演算子と大変よく似ているのですが、

テスト式をリストコンテキストで評価し、変換式になるところが異なります。


サンプル
@map_results = map $_ . "xxx" , @array;
print "\@map_result = @map_results \n";
出力結果
@map_result = aaaxxx bbbxxx cccxxx dddxxx ddaxxx

また、入力配列の一つの要素に対して複数の出力をすることもできます。


サンプル
@map_results = map {$_ . "xxx", $_ ."yyy"} @array;
print "\@map_result = @map_results \n";
出力結果
@map_result = aaaxxx aaayyy bbbxxx bbbyyy cccxxx cccyyy dddxxx dddyyy ddaxxx ddayyy

尚、中括弧でブロック形式にすると入力配列との間に『,』はいりません。

■ 2007-07-27 右と左と尋

すでに何度かご紹介しているように、漢字起源の時代は、神と人が渾然とした文化の時代です。

右と左と尋の漢字もそのように成り立ちました。


右という漢字は、神への祝詞を入れる箱である『口(サイ)』を右手でもった字形です。

左という漢字は、神を呼ぶ呪術のための道具である『工』を左手でもった字形です。


そして、尋という漢字は、実は、左右が合体した字なのです。

尋の『ヨ』と『寸』は各々左と右の手を表し、『工』『口』は、上記説明の通りです。

つまり、尋は、右手にサイ、左手に呪具を持って、神を祭るべき場所を尋ねている漢字だったのです。


ちなみに、尋は長さの単位でもあり、一尋(ひとひろ)の長さは、成人男子が両手を左右に広げた約1.8メートルです。

■ 2007-07-27仏の十号

法華経には、釈尊を始めとして沢山の仏さまが登場します。

過去の日月燈明仏等や弟子達の未来仏、そして他の惑星の仏さま達……。


登場するたびに、仏の十号という尊称で紹介されます

  1. 如来(にょらい)- 真如(ほぼ真理と同じ)から来た人
  2. 応供(おうぐ)- 供養を受けるに相応しい人
  3. 正偏知(しょうへんち)- 正しい智慧を具えた人
  4. 明行足(みょうぎょうそく)- 智慧(明)と実践(行)が満ち足りている人
  5. 善逝(ぜんぜい)- 迷いを完全にのぞきさってしまった人
  6. 世間解(せけんげ)- 世間をはっきり見分けることができる人
  7. 無上士(むじょうじ)- この上もないりっぱな人
  8. 調御丈夫(じょうごじょうぶ)- どんな人でも教えに導くことが出来る人
  9. 天人師(てんにんし)- 天上界と人間界の大導師の人
  10. 仏世尊(ぶつせそん)- 悟ったことにより世の中で尊重される人

ということで、仏の十号でした。

■ 2007-07-26 ADOでのクライアント側カーソルとサーバー側カーソル

たとえば、selectしたレコード数を求めるには、以下のコードのようになります。

    my $rs = Win32:OLE->new("ADODB.Recordset");
    # RecordCountを返すようにする
    $rs->{CursorLocation} = adUseClient;

CursorLocationプロパティにadUseClient(クライアント側カーソル)を設定すると

ADOは、Cursor Serviceを起動し、取得したデータをクライアント側に持ちます。

そして、そのデータによってRecordCountプロパティにレコード数が設定されます。


一方、CursorLocationプロパティにadUseServer(サーバー側カーソル)を設定すると

ADOは、Cursor Serviceを起動せず、したがって、クライアント側にデータありません。

よって、RecordCountプロパティにレコード数が設定されません。


尚、CursorLocationプロパティのデフォルト値もadUseServerです。


参考:

http://www.microsoft.com/japan/msdn/data/techmat/ado/dao2ado_2.aspx

■ 2007-07-25 カタカナ英単語変換

下記の設定をすると、英語系のカタカナを入力しただけで英単語変換をしてくれます。

そう、単語のスペルがわからない時にカタカナ入力でスペルがわかるのです。

もしかしたら、WINDOWS-XPでMS-WORDが入っていないとダメかも。

尚、発音が同じものなら複数の英単語が表示されます。

■ 2007-07-24 URLデコード処理

URLデコード処理とは、CGIで標準入力からHTMLフォームデータを読み込む時の定石の処理です。

    @pairs = split(/&/,$buffer);
    foreach $pair (@pairs) {
        ($name, $value) = split(/=/, $pair);
        $value =~ tr/+/ /;
        $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
        $FORM{$name} = $value;
    }

$buffer変数内では、『要素名1=データ1&要素名2=データ2&..要素名N=データN』のデータ並びを想定します。

これは、CGIでHTMLのフォームデータを標準入力から読み込んだデータ並びです。

これを、『&』デリミタでsplitし、『要素名=データ』毎の配列『@pairs』を作成し、

つぎに、『@pairs』の配列数分foreachし、『@pairs』の要素を、『=』デリミタでsplitし、要素名とデータを取得します。

尚、データは、URLエンコードされています。

「URLエンコード」とは

A〜Z、a〜z、0〜9、* - . @ _ はそのまま。

半角スペースは + に変換。

その他はすべて % に16進の2桁の文字コード。

たとえば、「あ」0x2422なら %24%22になります。

今回は、デコードなので上記の反対を行います。

『$value =~ tr/+/ /;』は、『+』を半角スペースに戻します。

trは、変換演算子といい、置換演算子のsと違い正規表現は使えません。

『%([a-fA-F0-9][a-fA-F0-9])』は、漢字等のエンコード状態で、(〜)による記憶で16進値をあらわす文字列が$1へ渡されます。

これをhex関数で10進数の数値にし、pack関数でその数値を文字コード1文字に変換します。

結果的に、この1文字へ16進数値をあらわす文字列(%24等)が『s///eg』で変換されるわけです。

尚、g指定は『$value』全体に適用します。

また、e指定は置換文字列『pack("C", hex($1))』を式として評価した結果を対象にすることです。

これがないと『pack("C", hex($1))』の文字列で置換してしまいます。

そして、ハッシュ『%FORM』へ要素名がキーになったデータを格納することができました。

■ 2007-07-23 法華経の教え

法華経の教えとは

悟ればこの身がすなわち仏であり、みんなが悟ればすなわちこの世が寂光土であるという教えです。

仏はわれわれの心のなかにある、極楽はわれわれの日常生活のなかにあるという教えなのです。

『新釈 法華三部経十巻』(著:庭野日敬 佼成出版社) より



ごく身近な心の中と日常生活の中にあるとは、まさにその通り、素晴らしい気づきだ!

 

■ 2007-07-22 VB2005のFTPでファイルサイズを求めるには

基本的には、以下の手順で求められました。

Dim szRequest As FtpWebRequest = WebRequest.Create("ftp://xxx.xxx.xxx/xxx.txt")
szRequest.Credentials = New System.Net.Net.NetworkCredential(アイデイ,パスワード)
szRequest.Method = WebRequestMethods.Ftp.GetFileSize
Dim szResponse As FtpWebResponse = szRequest.GetResponse()
Dim lngFileSize As Long = szResponse.ContentLength
szRequest.Close()

MSDNだとFtp.GetFileSizeだけでファイルサイズが求められるような感じになっていますが…。

いくらやっても、Ftp.GetFileSizeだけではファイルサイズはもとめられませんでした。

Googleのコード検索で上記のヒントを見つけました。


追記:

IEのプロキシの設定でFTPができない時があります。

そのような時は、以下で、本プログラムにとって、その設定を無効にすることが出来ます。

szRequest.proxy = Nothing

■ 2007-07-21 シンボリックリファレンス

以下は、今のstrict時代に非推奨なシンボリックリファレンスです。

とりあえず、perlってこんな凄いことも出来るよってことで……。

# 配列変数の例

@list = (10, 20);
print $list[0] , "\n";     # これは配列のゼロ番目の要素で、「10」と表示される。

$scalar = \@list;          # @listのリファレンスを代入。
print $scalar->[0] , "\n"; # これも「10」(普通のリファレンスのデリファレンス)。

$scalar = 'list';          # 単なる文字列代入。しかし、同名変数のリファレンス代入でもあるらしい…
print $scalar->[0] , "\n"; # なんとこれも「10」(シンボリックリファレンスのデリファレンス)。


# スカラー変数の例

$scalar = "symbolic" . "_ref";
${"$scalar"} = "30";       # なんとこれは「$symbolic_ref = "30";」とイコール。
print $symbolic_ref, "\n"; # したがってこれは「30」と表示される。
print $$scalar , "\n";     # なんとこれも「30」(シンボリックリファレンスのデリファレンス)。

ということで、シンボリックリファレンスとは、文字列値を変数名と解釈する。

しかし、実行時に動的に変数名を決めるなって、なんて言語だ。

■ 2007-07-19 VB2005でAPのインストーラの作成

普通、インストーラでインストールすると、スタートメニューやディスクトップにショートカットを作成したり、

コンパネからアンインストールが出来たりします。


VB2005では、任意のAPと一緒に、そのインストーラを比較的簡単に作成することが出来ます。

■ 2007-07-19 インストーラをクワイエットモードで実行するには

上記で作成したインストーラのmsi(例xxx.msi)ファイルをクリックすると対話型で実行することが出来ます。

では、非対話型(クワイエットモード)で実行するにはどうしたらよいでしょうか?


コマンドプロンプトから以下のように入力します。


インストール
msiexec.exe /quiet /package c:\xxx.msi
アンインストール
msiexec.exe /quiet /uninstall c:\xxx.msi

尚、

xxx.msi /quiet

でも、インストールができますが、

msiexec.exe /quiet /package c:\xxx.msi

とするのが正解みたいです。


追記:

クワイエットモードでインストール先のパスを指定するには、targetdir属性を指定する?

msiexec.exe /quiet /package c:\xxx.msi targetdir="D:\install"

実はこれ、ヘルプ(msiexec.exe /?)に出ていないのですが、出来るみたいです。

■ 2007-07-18 FTP(ファイル転送)する時の留意点

新しい環境や、はじめての環境でのFTP(ファイル転送)は、なにかと上手く行かないものです(経験から)。

そんな時は、まず、以下を疑ってみてください。

ファイヤーウォールやアンチウイルスソフトでのブロックは、案外気がつくのですが、プロキシは盲点だったりします。

■ 2007-07-17 VS2005でビルドメニューに構成マネージャを入れるには

Visual Studio 2005で、リリース版とデバック版の切り替えやExeファイルの出力先を変える構成マネージャが見当たらない場合があります。

そんな場合は、以下をチェックしてみてください。


ツールメニュー->オプション->「プロジェクトおよびソリューション」の全般->「ビルド構成の詳細を表示」をチェック


すると、ビルドメニューに構成マネージャが入ります。

■ 2007-07-16 リストと配列

Perlでは、リストと配列の概念が似ていてつい混同してしまいます。


リストとは、単にデータに順序を付けて並べたものです。

配列とは、その並べたデータを配列変数に格納したものです。


例えば、以下は、リストを配列変数に格納しています。

@aaa = (10, 20, 30);

つぎに、10をスカラー変数に格納するには、以下ようになります。

$aaa = (10, 20, 30)[0];

なんと、リストだと思っていたものが、配列として処理ができるのです。

これは、

$aaa = @aaa[0];

と全く同じです。

しかし、shift関数を使って10を求める時は、両者は異なるのです。

$aaa = shift(10, 20, 30);
$aaa = shift(@aaa);

前者はエラーになるのです。

どうしてもリストで処理をしたい場合には、

$aaa = shift @{[10, 20, 30]};

とします。

つまり、無名配列のリファレンスのデリファレンスをshiftするのです。

これは、厳密にはリストでなかったかもです。

ということで、リストと配列の違いわかりましたか?

■ 2007-07-15 お盆(盂蘭盆会)

お盆は、正式には盂蘭盆会(うらぼんえ)といい、元々は、旧暦7月15日を中心に祖先の霊を祀る一連の仏教行事です。


釈尊十大弟子の一人、目連尊者は、亡くなったお母さんが餓鬼道に堕ちているのを見つけ、

苦しんでいるのを助けようと、仲間に布施を行い、皆の力で助けたお話です。

このことから、祖先の霊を祀る一連の仏教行事となりました。


また、今の日本でのお盆は、大きく分けて東京のお盆と田舎のお盆の2つがあります。

なぜ2つになってしまったかというと、昔は旧暦の7月15日を中心にお盆をしていましたが、

新暦になったとき、東京は日付けを優先し、田舎は時期(8月15日は、旧暦の7月15日頃)を優先したのです。



で、これからはローカルな話です。


お盆の入りの日(7/13)の朝に、久々にちゃいちゃんに夢を見たのです。

まさくん(中三・三男)と2人で、まさくんより首一つ大きくなっていたちゃいちゃんでした。

夢なのでよく覚えていないのですが、とにかく満面な笑顔で微笑んでいたことは覚えています。


実は、かなり以前にちゃいちゃんの夢を見た時は、顔が真っ黒で、心配な気持ちになってしまったことがありました。

それ以来のちゃいちゃんの夢だったので、今回は、満面な笑顔でよかったよかった。


そして、お盆の中日(7/14)は、戒名当番(某教会関係の人以外は謎)で、

次の日の盂蘭盆会イベントの全戒名がご宝前にあがっていて、その目の前でお役をさせて頂きました。


そして次の日の盂蘭盆会イベントで、ご宝前のお役の侍者をやらさせていただきました。

普段、某教会のお役は、宿直以外は、ほとんどしていないのですが、重要なお役が重なりました。


盂蘭盆会イベントでは、開祖さまが入寂される時のお話を当時の佼成病院元婦長さんがしていました。

開祖さまが入寂された時は、危篤状態を通知する前に、自然と主要な人が全員集まったとのことでした。


まさに、『人の死にかたには、その人の生きかたが表れる。』を、また実感させられました。


元婦長さんのお話で面白いと思ったことは、この世では、生まれた時に、みんなでお祝いをし、死ぬときは、みんなで悲しむ。

しかし、あの世では逆で、この世に行く時は別れを悲しみ、死んであの世に帰って来たときは、お祝いをするそうです。


まさに、プラスマイナスゼロの世界ですね。この世とあの世は! ではまた。

■ 2007-07-14 サブルーチンのリターン値

プログラムの関数は、引数からデータをもらって処理を行い、結果をリターン値で返します。

一方、サブルーチンは、引数からデータをもらって処理を行い、結果を他の引数で返します。


VB系では、言語仕様的に、関数とサブルーチンの2つが用意されています。

Perlでは、サブルーチンしかありません。


しかし、Perlは、サブルーチンの中でreturn文によってリターン値を返せるのです。

つまり、Perlのサブルーチンは、関数でもあるのです。


これだけでも、Perlっぽいのですが、実は、return文がなくても、最後に評価した式の値がリターンされるのです。

これだから、初心者泣かせなんだよなぁ・・・Perlは。

■ 2007-07-14 三昧とは

普通、三昧とは、遊び三昧とか温泉三昧とかで、楽しいことをずーっとやっている意味で使われます。

また、無念無想になる行のように思う人もいるかも知れません。


しかし、仏教でいう三昧とは、そのようなものではなく、一切の雑念を断ち切り、<善き思い>と<正しい教え>に<全精神を集中>し、

その一念が長い間切れ目なくつづいている状態を言うのです。

瞑想とか思索と違うところは、『<善き思い>と<正しい教え>に<全精神を集中>』というところです。


<善き思い>とは、徳のことです。

<正しい教え>とは、法のことです。


そして、<全精神を集中>とは、表面の心だけでなく、潜在意識までも、徳と法をしみこませることなです。

徳と法が沢山しみ込んだ人格こそ、仏教徒の目指すところなのです。


とにかく、三昧とは、一切の雑念を断ち切り『<善き思い>と<正しい教え>に<全精神を集中>』することなのです!

■ 2007-07-13 元気ないです

ここのところ、ダッシュで時間が過ぎて行くみたいで、なんか疲れました。

ネタは、いろいろとあるのですが、それを書く時間と気力がないです。

ということで、今日は、早く寝ます。ってもう12時かぁ…。

■ 2007-07-12 とあるプログラマの格言

『プログラマに”有り得ない”は、有り得ない!』   By とあるプログラマ


いや〜このロジックだと有り得ないんですけど……。でも有り得ている……。


それは、何処かにバグが潜んでいるからです。


そのバグを解決することこそプログラマの使命です。

そう、『プログラマに”有り得ない”は、有り得ない』のです。

■ 2007-07-12 PerlでEXCELブックからセルデータを読み込む

前回、PerlのロジックからEXCELブックへセルデータを書き込みましたが、今回は逆に読み込みます。


以下のサンプルは、EXCELブックファイルを読み込み、セルデータを取得します。


ポイントは、EXCELシート上のセルデータを求めるためのEndメソッド(実行数と実列数の取得)の使用です。

あとは、Cells方式からRange方式に変換と取得データが配列の配列になっていることです。

#!/usr/local/bin/perl -w
use strict;

    my $ExcelFile = 'D:\test_book.xls'; # 読み込みEXCELブックファイル
    my $scalar;
    my $ref_array;

    my $data = &putExcel2Data($ExcelFile);

    # データ表示
    foreach  $ref_array (@$data) { # $ref_arrayには各行データの配列のリファレンスが格納される
        print "\n-----------------------------------------------\n";
        foreach  $scalar (@$ref_array) { # @$ref_arrayは行データの配列で、$scalarにはセルデータが格納される
           print $scalar, " ";
        }
    }

sub putExcel2Data{
    my ($FilePath) = @_;

    use Win32::OLE;
    # 指定タイプライブラリのコンスタントが参照可能
    use Win32::OLE::Const 'Microsoft Excel';
    # エラー時に本処理を中止し、Perlがエラーメッセージを出力し、本プロセスが終了する
    Win32::OLE->Option(Warn => 3);

    # EXCEL使用可能かチェック
    eval {
            Win32::OLE->GetActiveObject('Excel.Application');
    };
    if ($@) {
            &cgi_error("Excelが入っていません。 $@","");
    }

    # EXCELオブジェクト取得
    my $Excel = Win32::OLE->GetActiveObject('Excel.Application')
        || Win32::OLE->new('Excel.Application', 'Quit');
    my $Book = $Excel->Workbooks->Open($FilePath);
    my $Sheet = $Book->Worksheets(1);

    # 実行数を取得
    my $RowsCount = $Sheet->Range("A65536")->End(xlUp)->{'Row'};
    # 実列数を取得
    my $ColumnCount = $Sheet->Cells(1, 256)->End(xlToLeft)->{'Column'};
    # Cells方式からRange方式に変換
    my $Range = $Sheet->Cells($RowsCount, $ColumnCount)->Address("RowAbsolute:=False, ColumnAbsolute:=False");
    $Range =~ s/\$//g;

    # 全データ取得($arrayには、行毎のデータが格納された配列のリファレンスのすべてを格納した配列のリファレンスが格納される【分かります?】)
    my $array = $Sheet->Range("A1:$Range")->{'Value'};
    $Book->Close;
    $Excel->Quit();
    return $array;
}

■ 2007-07-11 帰社日

昨日は、10日で帰社日でした。

事務所で11時まで、今後の会社のことで話し合いをしていました。

なので、家に帰って来たのが夜中の12時になってしまい、燈明日記はお休みしました。


仕事や会社のことは、日記に書くなと某圧力が掛かっていますので、これでおしまいです。

それでも、ただ一つ書くと、若い人達が会社の現状に大変不安を感じているということがよーくわかりました。


なんとか、せねば…。

■ 2007-07-11 WORDで任意のページからページ番号を振るには

ごく普通のドキュメントは、大体以下のような構成になっています。

ページを振る時に、いきなり『メニューの挿入->ページ番号』だとドキュメント全体にページ番号が振られてしまいます。

内容と補足だけに1から順にページ番号を振るには、どうしたらよいでしょうか?


このような場合は、はじめにセッション分けをします。

<表紙・前書・目次>と<内容・補足>を別セッションにするのです。


具体的には、目次ページの最後ページにカーソルを移し、『メニューの挿入->改ページ』のセッション区切りで『現在の位置から開始』を選択します。

するとセッション分けが出来て、『メニューの表示->ヘッダーとフッター』を選択するとそれが確認出来ます。


つぎに、内容ページの最初ページのフッターにカーソルを移します(そこのフッターをダブルクリックする)。

そして、『ヘッダーとフッターツールバー』の『前と同じヘッダーとフッター』を選択して、フッター右上にある『前と同じ』を消します。


『ヘッダーとフッターツールバー』の『ページの書式設定』で、開始番号をゼロにします(なぜ1でダメなのか謎です)。

最後に『ヘッダーとフッターツールバー』で『ページ番号の挿入』をクリックします。


すると<内容・補足>が1から順にページ番号が自動で振られます。

いやー、めんどくさいです。もっと簡単な方法があったら教えてください。


しかし、単にページを振るだけで、半日も掛けてしまいました(鬱)。

■ 2007-07-09 ファイル名には半角スペースありき!

WINDOWS系では、ファイル名に漢字や半角スペースが使用できます。

基本的にファイル名の命名は、『\ / : * ? " < > |』以外の文字で、MAX255文字まで付けられます。

しかし、以下の例外があります。


ちなにみ、ルートディレクトリには、ファイルが512個までしか作成できない。

また、WindowsNT系では、ファイル名がUnicodeなのでSJISにない文字も付けられる。たとえば、ハートマーク等。


前置きが長くなりましたが、ファイル名に半角スペースがあるとコマンドプロンプトから起動する時にファイル名と引数の区別がつかなくなります。


通常、ファイル名をダブルコーテーションで囲めば回避できます。しかし、たまに回避できないケースにも遭遇します。


したがって、このようなケースをなくすためにも、プログラムを作成する側は、常にファイル名(フォルダ名含む)に半角スペースがあるものとして処理しないとなりません。


つまり、パスのフォルダ名やファイル名に半角スペースが入る可能性がある場合には、それをダブルコーテーションで囲みます。

参考:

http://beefway.hp.infoseek.co.jp/prog/filename.html

■ 2007-07-09 慈悲と智慧

まずは、おさらいです。

そして、弥勒菩薩は慈悲の象徴の菩薩で、文殊菩薩は智慧の象徴の菩薩です。

で前回のつづきです

『疑問に思った弥勒菩薩が文殊菩薩に教え請いました。』

ということは、『慈悲』が『智慧』に呼びかけたということになります。

『慈悲』の呼びかけに応じて『智慧』が発動するのです。


菩薩行とは、相手を救ってあげたいという、やむにやまれぬ慈悲の心です。

ところが、慈悲だけではダメで、そこには智慧がともなわないといけません。

慈悲と智慧がそろってはじめて、正しい導きができるのです。

■ 2007-07-08 阿鼻地獄(あびじごく)と阿迦尼タ天(あかにたてん)

法華経の序品に、無量義を説いた後、三昧に入っていたお釈迦さまが、『眉間の白毫相(びゃくごうそう)より光を放ち、その光が、下は阿鼻地獄(あびじごく)、上は阿迦尼タ天(あかにたてん)に至る』というクダリがあります。



つまり、光は『仏の智慧』の象徴で、それが、どのような状態の人間にでも行き届きました。

そして、このことがどいうことか、疑問に思った弥勒菩薩が文殊菩薩に教えを請いました。

そう、法華経のはじまりです。つづく…。

■ 2007-07-08 6月分を更新

燈明日記ブログ6月分を各ページへ追加更新しました。

■ 2007-07-07 PerlでのEXCELブック作成プログラム雛型

以下のサンプルは、Perlのロジックで2次元配列データ作成(行列データ)し、それをEXCELシートのセルへ格納しています。

尚、EXCELの他の機能は、他のVBA系の本を参照のこと。VBAで出来ることは、以下のような感じで、たぶん、ほとんどすべて出来るはずです。

use strict;
use Win32::OLE;

# 指定タイプライブラリのコンスタントが参照可能
use Win32::OLE::Const 'Microsoft Excel';

# エラー時に本処理を中止し、Perlがエラーメッセージを出力し、本プロセスが終了する
Win32::OLE->Option(Warn => 3);

# EXCELブック指定(パスや名前は任意)
my $ExcelFile = 'D:\test_book.xls';

# 2次元配列データ作成(行列データ)
my @data = ( [ qw(00 01 02) ],
             [ qw(10 11 12) ],
             [ qw(20 21 22) ]);

&putData2Excel($ExcelFile, @data);

sub putData2Excel{
my ($FilePath, @AoA) = @_;
my ($excel, $i, $j, $n);

    # EXCEL使用可能かのチェック
    eval {
        Win32::OLE->GetActiveObject('Excel.Application');
    };
    if ($@) {
        die "Excelが入っていません。 $@";
    }
    $excel = Win32::OLE->GetActiveObject('Excel.Application')
    || Win32::OLE->new('Excel.Application', 'Quit');

    my $book = $excel->Workbooks->Add; # ワークシートの作成
    my $sheet = $book->Worksheets(1);

    for $i ( 0 .. $#AoA ) {
        for $j ( 0 .. $#{$AoA[$i]})  {
            $sheet->Cells($i+1, $j+1)->{Value} = $AoA[$i][$j];
        }
    }

    unlink $FilePath;
    $book->SaveAs($FilePath); # ファイルを保存する
    $book->Close();
    $excel->Quit();
} 

■ 2007-07-06 PerlからSQL Serverへアクセスする(バージョンアップ版)

昨日、ご紹介したヤツは、エラーが起こっても無視する仕様(バグ)になっていました。

以下のように改善いたしました。


改善点
# SQL Server のデータベースアクセスサンプル
#[カスタマイズするポイント]
#・SQL Serverのサーバー名を『localhost』を変更する。
#・DB名『test』を変更する。
#・テーブル名『test_table』を変更する。
#・項目名『idやname』を変更する。
#・SQL Server 認証設定の時のID『testid』を変更する。
#・SQL Server 認証設定の時のパスワード『testps』を変更する。
# 補足:
# データ値を求める時の$rs->{Fields}->{id}->{Value}等は、idは各項目名になり、FieldsとValueは固定です。

use strict;
use Win32::OLE;

# 指定タイプライブラリのコンスタントが参照可能
use Win32::OLE::Const 'Microsoft ActiveX Data Objects 2.0 Library';

# エラー時に本処理を中止し、Perlがエラーメッセージを出力し、本プロセスが終了する。
Win32::OLE->Option(Warn => 3);

# DBサーバー名とDB名設定
my $server = "localhost";
my $db = "test";

# WINDOWS 認証設定
my $connStr = "Provider=sqloledb;".
              "Data Source=$server;".
              "Initial Catalog=$db;".
              "Integrated Security=SSPI;";

# SQL Server 認証設定
#my $id = "testid";
#my $ps = "testps";
#my $connStr = "Provider=sqloledb;".
#              "Data Source=$server;".
#              "Initial Catalog=$db;".
#              "User ID=$id;".
#              "Password=$ps;";

# DB接続
my $objDB = Win32::OLE->new("ADODB.Connection");
$objDB->Open($connStr);
$objDB->{Errors}->{Count} and 
    die "cannot connect '$connStr'";

# テーブル有無チェック
my $rs = Win32::OLE->new("ADODB.Recordset");
$rs->Open("Select count(*) aru From sysobjects Where NAME = 'test_table'", $objDB);

# テーブル無しの場合、テーブル作成
if ($rs->{aru}->{Value} == 0) {
    $objDB->Execute(
        "Create Table test_table (id int, name Char(20))" );
}
$rs->Close();

# データ挿入
$objDB->Execute(
    "Insert into test_table  values (1,'ミスチル')");
$objDB->Execute(
    "Insert into test_table  values (2,'中島美華')");
$objDB->Execute(
    "Insert into test_table  values (3,'中島美華')");

# データ更新
$objDB->Execute(
    "Update test_table Set name = '中島美嘉' Where id = 2");

# データ削除
$objDB->Execute(
    "Delete From test_table Where id = 3");

# データ読み出し
$rs = Win32::OLE->new("ADODB.Recordset");
$rs->{CursorLocation} = adUseClient;
$rs->Open("Select * From test_table", $objDB);

while(!$rs->EOF and $rs->{RecordCount} != 0){
    print "$rs->{Fields}->{id}->{Value}, ",
        "$rs->{Fields}->{name}->{Value}\n";
    $rs->MoveNext();
}
$rs->Close();

# DB切断
$objDB->Close();

■ 2007-07-05 PerlからSQL Serverへアクセスする

PerlからSQL Serverへアクセスするプログラムの雛形サンプルを公開します。

『カスタマイズするポイント』を参考にして、お使い下さい。お役に立てれば幸です。


補足1:

以下のサンプルソースの接続認証は、WINDOWS認証設定になっています。

SQL Server認証設定するには、WINDOWS認証設定個所をコメントにし、SQL Server認証設定個所のコメントを外します。


補足2:

データ値を求める時の$rs->{Fields}->{id}->{Value}等は、idは各項目名になり、FieldsとValueは固定です。

# SQL Server のデータベースアクセスサンプル
#[カスタマイズするポイント]
#・SQL Serverのサーバー名を『localhost』を変更する。
#・DB名『test』を変更する。
#・テーブル名『test_table』を変更する。
#・項目名『idやname』を変更する。
#・SQL Server 認証設定の時のID『testid』を変更する。
#・SQL Server 認証設定の時のパスワード『testps』を変更する。

use strict;
use Win32::OLE;

# DBサーバー名とDB名設定
my $server = "localhost";
my $db = "test";

# WINDOWS 認証設定
my $connStr = "Provider=sqloledb;".
              "Data Source=$server;".
              "Initial Catalog=$db;".
              "Integrated Security=SSPI;";

# SQL Server 認証設定
#my $id = "testid";
#my $ps = "testps";
#my $connStr = "Provider=sqloledb;".
#              "Data Source=$server;".
#              "Initial Catalog=$db;".
#              "User ID=$id;".
#              "Password=$ps;";

# DB接続
my $objDB = Win32::OLE->new("ADODB.Connection");
$objDB->Open($connStr);
$objDB->{Errors}->{Count} and 
    die "cannot connect '$connStr'";

# テーブル作成
$objDB->Execute(
    "Create Table test_table (id int, name Char(20))" );

# データ挿入
$objDB->Execute(
    "Insert into test_table  values (1,'ミスチル')");
$objDB->Execute(
    "Insert into test_table  values (2,'中島美華')");
$objDB->Execute(
    "Insert into test_table  values (3,'中島美華')");

# データ更新
$objDB->Execute(
    "Update test_table Set name = '中島美嘉' Where id = 2");

# データ削除
$objDB->Execute(
    "Delete From test_table Where id = 3");

# データ読み出し
my $rs = Win32::OLE->new("ADODB.Recordset");
$rs->Open("select * from test_table", $objDB);
while(!$rs->EOF and $rs->{RecordCount} != 0){
    print "$rs->{Fields}->{id}->{Value}, ",
          "$rs->{Fields}->{name}->{Value}\n";
    $rs->MoveNext();
}
$rs->Close();

# DB切断
$objDB->Close();

参考:

本サンプルは、以下のページを大変参考にさせて頂きました。

http://www.augustus.to/blog/3128/archives/000046.html

■ 2007-07-04 有名な比丘を紹介

比丘とは男子の出家修行者です。


お釈迦さまの時代には、有名な十大弟子や初転法輪五比丘等の沢山の比丘がいました。

今回は、この比丘以外で有名な比丘をご紹介します。


優楼頻螺迦葉(うるびんらかしょう)

事火外道という一種の原始宗教の一派で、500人の弟子がいました。


伽耶迦葉(がやかしょう)

優楼頻螺迦葉の弟。


那堤迦葉(なだいかしょう)

同じく優楼頻螺迦葉の弟で、世に三迦葉といわれる兄弟です。


劫賓那(こうひんな)

大上座の一人で、勇猛端正第一といわれていました。


離婆多(りはた)

舎利弗の末弟で、坐禅することを好み、坐禅第一といわれていました。


薄拘羅(はくら)

無病小欲第一といわれ、160歳で入寂したと言われています。


摩訶拘ち羅(まかくちら)

議論がじょうずで、問答第一といわれていました。


孫陀羅難陀(そんだらなんだ)

釈尊の異母弟で、釈尊の継母で摩訶波闍波提比丘尼の実子。

容貌は、釈尊と瓜二つだといわれていました。

■ 2007-07-03 簡単にネットで月に何百万も稼ぐ?

ビンボーなので、ついテリー伊藤さんのオビに釣られて、その手の本を買ってしまいました。

本当にネットで月に何百万も稼げるのか…そして、読んでいる内に怒りがモリモリと……。


はっきり言って、スパム詐欺と紙一重の内容でした。

宣伝だけで内容のない、または、他のパクリをスパム的に送りつける。

これで、結構、稼げるらしい。


でも、こんなことして儲けても、そのうち誰からも相手にしてもらえなくなると思いました。

『善い事をすれば、善い結果が出て、善くない事をすれば、善くない結果が出る』

これ真理です!


とにかく、まずは自己を省みて、広告はほどほどにします。

そして改めて、広告やパクリがメインでなく、内容のあるコンテンツを公開していきたいなと思いました。


しかし、アマゾンの広告って、儲かりますか…って、誰にともなく…。

■ 2007-07-02 サッダルマ・プンダリーカ・スートラ

法華経こと『妙法蓮華経』は、サンスクリット(梵語)でサッダルマ・プンダリーカ・スートラといいます。



妙法蓮華経の『従地涌出品 第十五』に以下の偈があります。

『善く菩薩の道を学して、世間の法に染まざること蓮華の水の在るが如し』

つまり、法華経は、正しい法を学して、それに沿っていれば、泥水にも染まらず、いつも清らかな白い蓮華のようにいられる…という意味になると思います。

■ 2007-07-01 仏の三十二相

以下は、いわゆる、仏の三十二相です。

無量義経の徳行品に出てきます。


釈尊の完全な人格への賛嘆を示しているとされています。

仏像は、まさにそのような形になっていますね。


  1. 額にある月のような渦毛
  2. 項(うなじ)に日の光あり
  3. 渦巻く頭髪は紺青色
  4. 頭上は高く盛り上がっている
  5. 澄み切った鏡のような清らかな眼
  6. その眼は上下にまじろぎ
  7. 紺色の眉はのびのびとし
  8. 口や頬は正しく整い
  9. 唇は赤い花のよう
  10. 舌もおなじく
  11. 歯は、雪のように白く
  12. 40本きちんとそろって
  13. 額は広く
  14. 鼻長く
  15. 顔全体がひろびろとして晴れやかで
  16. 胸には卍が表れ
  17. 上部は獅子の胸のように張って
  18. 手も足も柔らかで
  19. そして車の輪ような紋ある
  20. 脇の下と掌に細い線が揃っていて
  21. それが内外ともにまとまっている
  22. 上腕はながく
  23. 下腕もながく
  24. 指はまっすぐで細く
  25. 皮膚はキメ細やかで柔らかく
  26. 毛はすべて右のほうに渦巻いている
  27. 踝はよく現れて形がいい
  28. 膝も同様
  29. 陰部は隠れていて見えず
  30. 筋は細く
  31. 骨はがっしりしていて
  32. 脚は鹿のようにすらりとしている

補足:

額にある月のような渦毛のことを白毫相(びゃくごうそう)といい、非常に徳の優れたしるし。

項(うなじ)に日の光ありは、後光ともいい、非常に徳の優れたしるし(もしかしてオーラ?)。

卍(万字)は、仏教のしるし。四方が円満に揃っている意味。