ひしだまHPの更新履歴。 主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。
ひしだまの変更履歴
DOM廃止
プログラミング言語比較のページでは、表に各プログラミング言語のキーワードを並べている。ただ、言語が多くなると横に長くなってブラウザーからはみ出して見づらくなる為、指定した言語(列)だけ表示する機能を入れていた。
しかしそれを実現するのにMicrosoftのXML DOMを使い、表のデータをXMLファイルから読み込んで特定の列だけ抽出するようにしていた為、IE(のバージョン5以降)でしか使えなかった。
自分がIEしか使ってなかった頃はそれで良かったのだが(爆)、最近ではIEを使っていないので、何とかしたいと思っていた。
で、素直にJavaScriptを使ってタグの表示・非表示を切り替えるように修正した。
XMLファイルやXSLファイルが不要になったのでファイル数が減ったw
XMLファイルを使っていた頃は htmlファイルを読み込んでXMLファイルを生成するプログラムを用意していたのだが、これは結構やっつけ仕事プログラムで(苦笑)、このファイル限定のタグ解析をしていた。
今回もテーブルの各セルにidを付けるプログラムを作ったが、これは自作のHTMLパーサーを使ったから、まだましかなー。(このパーサーは、今回の様に属性値を変えたり追加したりする為に作ったので)
ただ、久しぶりにこのパーサーを使ってみたら、メソッドが不便だったんでちょっと追加してしまった。最低限しかAPIを用意していないJDK1.5から便利メソッドが追加されたJDK1.6になったような気分w
MTアンセーフの状態
文字列のページから文字の部分を分離して新しいページを作った。
と言っても、移したのは改行コードに関する部分くらいか^^;
あとマルチスレッドについて思った事をちょっと追記。
C言語だと関数の呼び出し形態は1つしかないので、MT非セーフの関数の場合、「排他すれば安全」と「排他してもダメ」の2種類になるように思う。
オブジェクト指向というかクラスをインスタンス化して使う言語の場合、インスタンスメソッドがMT非セーフだったら、同一インスタンスだと複数スレッドから呼べない(安全でない)。
排他の有無によって安全になるかどうか…というのはC言語の場合と同じだけれども、もう一つ、「それぞれのスレッド毎にインスタンスを作れば排他しなくても使える」という可能性がある。(staticなフィールドを使ってデータを保持していたりしたら安全とは言えないので、スレッド毎にインスタンス化したからと言って必ず安全とは限らない)
「MT非セーフな関数・メソッドに対し、どう呼んだら安全となるか」という分類については、専門用語がありそうな気もするけど、聞いたことないなぁ…。
XML用語
XML(SGML?)の記号の文法上の名称はけっこうきっちり決まっているっぽいので分かり易い。
- <? 〜 ?> … 処理命令
- <! 〜 > … マーク宣言
- <![ 〜 ]> … マーク区間宣言
- [ 〜 ] … 宣言部分集合
- <!-- 〜 --> … 注釈宣言
<?xml 〜 ?>というXML宣言は、処理命令を利用したものらしい。
CDATAセクションはマーク区間宣言と宣言部分集合の合成のような気がするが、その終端を表す記号]]>はマーク区間宣言の終了とはちょっと違って独特(]と]>が不可分)なように思える。
注釈は、途中で「--」が現れるとエラーになるらしい。だから「<!----」とか「---->」は不可なんだそうだ。そんなコメントは試そうとも思わなかったけど(苦笑)
Javaでパス名/ファイル名要素取得
プログラム言語比較のファイル操作に、Javaでパス名からディレクトリ名・ファイル名を取得するメソッドを追加。
…なんで今まで書いてなかったんだろうなぁ。やっぱり拡張子を取得するメソッドとかが分からなかったからかな? Javaにそんなメソッドが無いのは、JavaはUNIXでも使う都合上、拡張子という概念には触れないようにしてるからなんだろうな〜。(当然ドライブ名も無いし)
外部プログラムの実行
各プログラム内から、外部のプログラム(実行ファイル)を実行する方法をメモ。
…googleで「C言語 execl」で検索すると、Excelが出てくる…。
ウィンドウサイズの取得設定
JavaScriptではウィンドウサイズの変更はresizeTo()で出来るくせに、どうして取得方法には統一されたやり方が無いんだ…。
IEならdocument.body.clientWidth・clientHeight、Netscapeならwindow.innerWidth・innerHeight、outerWidth・outerHeightらしい。
フォーカス移動
フォーム上の部品(コントロール)のフォーカスを移動させる関数についてメモ。
Javaのメソッド名は、英語力の貧弱な自分には想像もつかない名前になってるな(苦笑)
ついでに、JavaScriptをHTMLの隣に移した。
他のページだとJavaの隣にしてたんだけど、さすがにHTMLの操作に関するものだからなー。
ファイル属性を知る
主にファイルの属性を取得する方法について追記。
ついでにVBAのファイル関連ダイアログについても追加。
ついでにVBAの「:=」は省略された引数について値を設定する為のものだと思い込んでいたけれど、実際はどの引数にでも使える。
そして、VBAで引数のデフォルト値を設定する方法なんか完璧忘れ去ってた…Optionalを付けるんだった、これはメモしとかなきゃ、と思ったら既に書いていた(恥)
久しぶりに見返してみると、すっかり忘れ去ってたことが結構ある(爆)
| « 前ページ |

