ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

開発の初めから順番に書いていってみる その60:プログラミング(22)入出力の自動生成10

2007-06-13 18:20:45 | 開発ネタ

 シリーズ「開発の初めから順番に書いていってみる」の続きです。
 現在プログラミングのDB入出力の自動生成をやっています。
 自動生成は、ここでやってきたように、
  ・雛形ソース→サンプルソースから変形
  ・仕様書のExcelシート
 をつくって、あとは、自動変換のシートの作業一覧シートに、それらを指定すれば出来ました。

 サンプルソースに関しては、いままでの説明でおわりです。

 ということで、今回は、仕様書のExcelシートについてです。




■雛形の仕様書

 いままでのユーザーテーブルを仕様書にすると、こんなかんじ


 以前、データベースのテーブルを自動生成する仕様書が、
ここ http://blog.goo.ne.jp/xmldtp/e/75a7baa84365b230b6841d445ee3138c

にあるかんじのようなものなので、増えたのは、「囲み文字」になります。
今回はそれを説明します。
(なお、「データベースのテーブルを自動生成する仕様書」のマクロについて書き忘れたことがあります。最後にそれも付け足して起きます)




■囲み文字とは

 SQL文で、name=''などのように、値を書くとき、

文字の場合は、囲みます
数字の場合は、囲まずに値を、そのまま書きます。

 そこで、型が文字関係のときだけ、囲み文字 ' をその欄に書き出すようにしています。

 上記イメージで、getKakomiMoji(B8)とやっているところから分かるように、そこは、マクロで関数を作ってます。




■囲み文字の関数マクロ

こんなかんじです。

Function getKakomiMoji(kata As String) As String

    chk = UCase(kata)
    If (InStr(chk, "CHAR") > 0) Then
        getKakomiMoji = "'"
        Exit Function
    End If
    
    getKakomiMoji = ""
End Function

(上記< > ¥は本当は半角です)

型にCHARという文字があったら、囲むようにしています。




■で、この前書き忘れたこととか。。

 この関数は、型の値を換えると、すぐに変わってくれます。
 それに対し、以前の「データベースのテーブルを自動生成する仕様書」のマクロ、 getMainKeyは、値を書き換えても変わらないので、再度、その getMainKeyがある、セルB4にいって、リターンを入力しないと値が書き換わりません。

 ということを、書き忘れてました。




 ということで、仕様書については、おわりということにしておこう。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

一般的な編集ソフトの作り方 その13:重なりや複雑図形オブジェクトの選択

2007-06-13 16:01:22 | 開発ネタ

 ワープロやドローイングソフトなどの編集ソフトを作る上での一般的な考え方を考える「一般的な編集ソフトの作り方」です。
 ここでは、主に、

  ・メモリ上に、要素をもつ
  ・イベント発生時の動き
  ・画面の構成

ということで、現在、「イベント発生時の動き」をやっています。
その機能には、
  ・印刷
  ・保存
  ・読み込み
  ・カット(切り取り)
  ・ペースト(貼り込み)
  ・プロパティ(属性設定・変更)
  ・表示
  ・要素の選択
  ・(要素の)移動
とあると前回書いたのですが、まず初めに、要素が選択できないとしょーがないので、「要素の選択」からいきます。




■要素の選択

 画面に表示されている図形、枠とか四角形とか写真とか、これらを、選択します。
 普通たいていのソフトは、クリックしただけで、選択できるはずです(ダブルクリックとかもあるかもしれないけど)
 そうすると、イベントとしては、画面のウィンドウの(X,Y)がクリックされたという情報が、プログラムにつたわります。

 ということは、画面の位置X,Yが、どの要素か、あるいはまったくなにも書かれていないところかが分かればいいわけです。




■ウィンドウの位置X,Y→要素への簡単な変換法

 これが、四角形とかなら、いいんです。
 問題は、それらの要素は重なり合っていたり、複雑な図形(多角形、曲線など)になっているのに、どーしてクリックしただけでわかるかということです。

 これは、複雑な方法を使っているものもありますが、超簡単に分かる方法もあります。




■画面表示以外にIDのバッファを持つ

1.画面表示用のグラフィックコンテキスト以外に、もうひとつ、画面に表示しないグラフィックコンテキスト(画面表示領域)をもちます。
 →はじめ、このグラフィックコンテキストをrgb=(0,0,0)で初期化します。

2.オブジェクト(=各要素)には、常に一意のIDが、数字でついているとし、これは256X256X256以下の数とします(たいていそうです)

3.オブジェクトを画面に表示すると同時に、idを
  256で割って、その商をrg、あまりをbとします。
  rgをさらに256で割って、その商をr、あまりをgとします。

4.その結果得られたrgbで、1の画面に表示しない
  グラフィックコンテキストに、
  3で画面表示したのと同じ図形を、そのrgbの色で塗りつぶして書きます。

そうしておいて、クリックされてイベントがきたら、
5.受け取った(X,Y)座標から、4で書いたグラフィックコンテキストを
  getPixelして、そこの色rgbを取得します。

6.idはr*256*256+g*256+bです。
  そのIDの図形が選択されたことになります。
  0なら、選択されていません。

 インデックスカラーしか使えない場合は、rgbのところがそのインデックスになります。その場合の最大の要素数は、そのインデックスの最大値-1(初期値を除く)となります。




■IDから要素へ

 IDから、要素を割り出すには、ファイル書き出しのところでやった、IDごとの配列を持っていると楽だったりします。

 まあ、ループで全部のIDを調べてもわけないかもしれませんけどね。




 と、こんなかんじで、要素の選択はおしまい


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

年金の基礎年金番号、1つのはずが複数あるって、開発の人は悲劇?

2007-06-13 12:24:58 | Weblog

また年金の話でごめんなさい。

ここのニュース
複数基礎年金番号 厚労相が「2万人存在」明かす 参院委
http://headlines.yahoo.co.jp/hl?a=20070613-00000000-maip-pol


基礎年金番号って、1人ひとつのはずが、複数あるんだって・・・
じゃあ、基礎年金番号、主キーにできないから、
番号ふる意味ねージャン(^^;)

つーか、これじゃあ、5000万件の不明の名寄せをする前に、
基礎年金番号の名寄せからしないといけないジャン(^^;)

すげー、仕様変更だ。。

だけど、きっと、みんな1年で終わると思っているから、期間は延ばせないし、
予算もきまってるから、そうそう開発費も増えないよね。。

年金の名寄せシステム受けた人たち、たいへんそう(^^;)
開発の人は悲劇?笑うしかない??

ウィリアムのいたずらは、関係ないから、
実は、どーでもいいんですけどね。。。
(いや、この業界の仕事が増えて、人手がひっぱくするのかなあ。。)

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

「忘れずに、ネットと心のファイアーウォール」IPA「情報セキュリティ標語2007」大賞作

2007-06-13 01:46:43 | Weblog

村八分ならぬ村80番っていう感じですかね。。秀逸です。

ここのプレス発表
「情報セキュリティ標語2007」の入選作品決定
http://www.ipa.go.jp/about/press/20070611-2.html

によると、IPAの、「情報セキュリティ標語・ポスター2007」の標語部門の大賞は
(以下斜体は上記サイトより引用)

忘れずに、ネットと心のファイアーウォール
福士 彩織さん (北海道・遺愛女子高等学校)

にきまったそうです。

秀逸です。ネットと心の”セキュリティ”じゃないんですよ、
「ファイヤーウォール」ですよ、カベで、心閉ざしちゃうんですよ、

うーん、本心は武装をして決して見せるなと。。。

表面的にポートの80番だけ空けておいて、テキトーに世間とかかわりをもち、
本心は閉ざしておけと・・・

たしかに、そのとおりです。
世の中、渡る世間は鬼ばかりです。
きっとこの人は、自分の心をひらいて、大いに傷つき、
もう、二度と心なんて、開かないぞお
というふかーい悲しみがあるのでしょう。。。

たしかに、それが、現実ですよね。世間では、いじめとかあって、
ネット同様、こころを開ける状態ではない。。




でも、これを最上位にもってくる、IPAも、やるなあ。。
昔は、なんか、国って、明るい元気な標語が大好きじゃありませんでした?

今回みたいな、朝の出勤中、電車の中でipodで山崎ハコを聞くみたいなかんじの
くらーい、奥行きのあるのは、選ばれにくいと思っていたのですが。。

まあ、他と比べると、世界観が違うと思うくらい秀逸ですが。。
この世間に対する絶望感、無頼漢が、ほんとすごいです。

「ネット同様、世間に心を開いて非武装にしたら、負けだと思っている」

とか、いいそうですよね。。。




じゃ、ウィリアムのいたずらも、負けじと、標語をひとつ。

勝ち組も、”きんたま”つかめば、あの世行き  割れ者

うーん、奥行きも絶望感もない。
修行たりないみたいです(>_<!)


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする