プログラム悪戦苦闘日記

はてなダイアリーからの移行(遺物)

Excel VBA コントロール処理を分散させる

VBA

WindowsのルールというかMS仕様では、コントロールのイベント(メッセージ)はトップウィンドウが受け取る、というのがある。たとえばワークシート上のボタンコントロールがあったとして、こいつを押したときイベントを受け取るのはボタン自身ではなくてワー…

RubyのEXE化

exerbというのがある。 http://exerb.sourceforge.jp/man/README.ja.html これで Rubyの無い環境にも配布できる!

RDocの書き方

この辺しかねー http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=RDoc%B3%D0%A4%A8%BD%F1%A4%AD http://rgss-lib.sourceforge.jp/doc/comment-stipulation.html http://rdoc.sourceforge.net/doc/index.html (英語) http://www.kmc.gr.jp/~oh…

文字コードとエンコード

いわゆるコンピューター業界にいる人にとって、文字コードの知識は常識なんだそうです。そんな自分は… 全然分かんね(泣)。文字コードについては一度きちんとまとめたいと思っていたのですが、調べてみると、文字コードについての説明は、サイトにしろ本に…

続 糞プログラムをやっつけろ!

前回の続き。このすさまじいif - then -elseチェーン。なぜこんなことになってしまったのだろうか。 一言で言えば、モジュール分割方向がまちがっているということだ。たとえば、こんなWebアプリケーションがあったとしよう。ある商品の取引で、画面からは「…

糞プログラムをやっつけろ!

昔も似たようなことを書いた気がするが、あれから少しは進展があったので、再びまとめてみようと思います。いわゆるシステム開発なんて仕事は、Excelいじっているか、他人の書いたプログラムを見てるかどっちかですからね^ ^; ヘタレプログラムとは? -ヘタ…

グローバル変数てんこもり

VBA

そろそろVBAネタも飽きてきたけど、これだけは書いておきたい。グローバル変数だ。VBAにおけるグローバル変数をは、Public な変数のことだが、これだけでなかったりする。現在アクティブになっているWorkbookなりWorksheetなりCellなんかも、グローバル変数…

GUIはどーなってるの

VBA

Excel VBAの話の続きです。Excelの操作性とかそういう話ではなく、GUIプログラムはどういう構成はどうなっているか、という話です。 GUIプログラムにおいて、最初に気になる点は次の4つではないかと思っている。 コンポーネントのディスパッチャー(イベン…

Excel VBAはモジュール志向!

VBA

時間無いので要点だけ。 VBAはモジュール(≒ファイル)か、スコープの単位になる 一言で言うと、『ポインタのないC言語』 VBAで言うところの「オブジェクト」とは、『メソッド付き構造体』(いちようカプセル化はあるが…) クラスモジュールは、オブジェク…

Excel VBA 事始め

VBA

他言語で開発経験を積んでいると、Excel VBAが非常にとっつきにくい。実はExcel VBAを『開発言語』と捉えると、とても奇特な環境でなのである。というのは、Excel ワークブックというのは、 開発用のエディタ内蔵 デバッグ環境 配布用実行ファイル の3つを…

攻略サイトをねこぞぎ奪う

こんなん作った。かなり手抜きだけど require 'net/http' require 'socket' require 'URL.rb' exit if ARGV.length != 1 def mkdir(dir) Dir.mkdir(dir) unless File.exist?(dir) end def parse_html(url) puts url.to_s tokens = [] begin Net::HTTP.start(…

Windowsでバックアップをとりたい

環境:Windows XP。mswin版のRuby 1.8.2がインストールしてある やりたいこと:ローカルドライブ(Dドライブ)にある、あるフォルダ以下をネットワーク上にあるコンピューターのあるフォルダにコピーする。そのとき、そのネットワーク上のコンピュータのフ…

2005/7/19の日記

スパムメールについて書くと、スパマーのえさになるのではないかと思っていたが、やっぱりなっていた。もしそうなっていたときは日記を削除すればいいと思っていたが…。日記は1日単位で消せないのね。消せるのかもしれないが調べるのが面倒くさい。メニュー…

Excel VBA オブジェクト階層図のウソ

VBA

今までなんとかVBAを使った開発を逃げてきたのだが、今回ばかりはどうしてもExcel VBAでの開発になってしまった。Excel VBAを触ったことがないわけではないのだが、まともにやるのは今回が初。そこで文法とかAPIとかオブジェクトとか適当に勉強していたのだ…

Excel VBAからパスワードつきAccessにADOで接続する

VBA

con As ADODB.Connection Set con = New ADODB.Connection With con .Provider = "Microsoft.Jet.OLEDB.4.0" .Properties("Data Source").Value = ThisWorkbook.Path & "\db1.mdb" .Properties("Jet OLEDB:Database Password").Value = "xxx" .Open End With…

ベルウィックサーガ買っちまった

一週間更新が止まってしまったが、これは仕事が忙しく慢性的な残業で休出で…、というはずもなく、単にベルウィックサーガをやっていたからだったりする。で、参考URL http://haruka.saiin.net/~berwick-saga/index.php?%A5%D9%A5%EB%A5%A6%A5%A3%A5%C3%A5%AF…

価格.com…

旬は過ぎてますが、SQLインジェクションが原因ですか。 http://www.itmedia.co.jp/news/articles/0505/16/news077.html ハードもソフトも入れ替えですか。

Zip圧縮 -part3 日本語文字化け-

エントリー名を日本語にすると文字化けする。エンコードを変えれば可能かと思ったが、UTF8、ISO8859-1、ISO2202-JPを試したがだめだった。どうすりゃいいんだ? import java.util.*; import java.util.zip.*; import java.io.*; public class Main { public …

ヘタレプログラムをやっつけろ

※2005/05/24 書きなおしました 仕事柄、と言うわけではないはずだが、どういう訳か自分のところにはプログラムのメンテナンスという仕事がよく来る。そのため他人が作ったプログラムを解析する、ということが多い。 メンテナンスといっても、単にプログラム…

ZIP圧縮でもしてみる -part2 ZIPファイルの読み込み -

今回は読み込み。読みは書き込みの反対なので、ZipInputStreamとZipEntryをつかって読み込むことができる。しかし読み込みは、ZipOutputStreamと同様、ZInputStream#read(bute[], int, int)のみなので、Zipアーカイブ内にあるテキストファイルを読みたいとき…

ZIP圧縮をしてみる - part1 zip書き込み -

JavaでZIPファイルを扱うには java.util.zip パッケージを使う。このパッケージはJDK1.1からあるにもかかわらず、ZIP圧縮を説明しているサイトは非常に少ないと思う。まぁ、javadoc読めば分かる、ということなのか。とにかく今回はzipの書き込みをやってみた…

PreparedStatementは無印Statementより早いのか -part3-

Webアプリケーションで使う、という条件に近づけるためにConnectionをプールして測定をしてみた。入力データなどの条件は前回と同じである。 import java.util.*; import java.sql.*; import javax.naming.*; import javax.sql.*; public class Main { stati…

基本情報技術者試験

なんとか受かりました。これで会社の同僚に恥掻かなくてすむ…。

PreparedStatementは無印Statementより速いのか? part2

記事の内容を鵜呑みにする前に、自分で測定しようと思った。Webアプリケーションで使われる状況を想定した条件にしたつもりだ。。 まず、データベース(もどき)としてMS Accessを使った。テーブルレイアウトは次の通りである。 変数名 | 型 | - ID | charac…

PreparedStatementはただのStatementより速くなるのか?

PreparedStatementを使うと、事前にSQLがコンパイルされて速くなるという。大体どのサイトも本もそんなことが書いてある。しかしWebアプリケーションでは、毎回DataSource → Connection → Statementというように取得する。Connectionはプールしておくとして…

スタイルシート調整

一行… スタイルシートを調整してみるてすと。この文は2行以上にわたって書いてみる。てすとてすと……。いいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいい!!! ←このくらいあれば2行になるか? ↑空行を…

Java New I/O part5(最終回)

New I/Oの話題はMappingByteBufferやSelectorの話もあるが、ここで一旦打ち切り。最終回は、本当にNew I/Oは今までのI/Oより速いか、測ってみた。プログラムの内容は、前回の練習問題でやったファイルの中身をすべてビット反転して、ファイルに出力するとい…

ファイアーエムブレム ヘタレリプレイ 1回目

このブログは日記というより、自分に対する技術メモに使っていたのだが、いい加減飽きてきた+ネタがない、ということで全然別のことを書いてみようと思った。 自慢ではないが、ファイアーエムブレムシリーズは、アカネイア戦記を除いてすべてやっている。も…

\23,000也

ファイアーエムブレムを、GC本体から買い集めるとこのくらい掛かる。このゲームしかやらないのに、GCを買うのはかなりもったいない感じがする。これは、ある意味『大人買い』になるのかな。

Java New I/O -part4-

今回はチャネルのはなし、とはいってもあまり書くことはない。重要なのはread()でByteBufferから読み、write()でByteBufferに書き込むだけだ。逆に言うとBuffer系はByteBufferだけしか使えないのかも。 そんなわけでTechScoreにある第3回の実習課題1でもや…