昨日は復習をしているうちに眠ってしまったようである
気が付いたら0時を回っていたので電気を消してそのまま眠る
朝, 気付いたらポケモンのルビーが1日を越えて放置すると木の実が消え始めてしまう…32時間ほど手付かずになっていることに気が付く…ってそんな問題だったろうか
取り敢えずfoldは直前までに頭に叩き込むこととしよう
昨日のはこちら
たいした事書いてないけどね…
ポケモンデータベーススクリプトの改造をした
データベースとして正規化するために技のデータを別テーブル化するのである
取り敢えず技の固有データとしてはタイプ不明, 威力 0, 命中 0, PP 0いい加減な仮の値を与えておいてTeXの目次作成のように全データを記憶しつづけるのは問題があるのでポケモンごとに処理して各ファイルに追記する仕様と登場する全技をサーチする必要性が衝突するため2パスで変換するような仕様にした
技の並べ順は1パス目と2パス目でIDが変わってしまったら意味が無い一意である必要があるのでソート規則を適当に作ってみた
単に技名のコード順でも構わないのだが, そうすると最初に来るデータが『10まんボルト』となって, 何故かこのときだけAccessのインポートウィザードがShift_JIS, 最初の一行だけで判定しているためにデータ不足で失敗したと見た文字コード誤認識を起こすので文字コード変換は面倒, これが一番平穏な方法なのだこれが1番上に来ない方法を模索, タイプ, PP, 命中, 威力, 五十音の順に並ぶように設計した
1パス目は技データを読み込んだ後全出力を一時的に削除, 読み込んだデータをもとに仮のIDをつけながら全データを収集し出力すると共に新しく技の一覧を作成し, タイプ等のソースから得られないデータを読み込んだデータで補完して保存しなおす
2パス目はこのデータをもとに正しい技IDで全データを出力しなおす
これで全てのファイル中にある技をリストしてIDを与え, それをもとに出力できるようになった
こんな色々な意味で…アホなスクリプトを書いたのは初めてな気がする
このためにハッシュ内に配列を入れるために配列のリファレンスの構文を調べたり…本当にアホです
とても英語の試験前日にやることではありません
ところで, Perlで[$a, $b, $c]のようにして作られたもの無名配列へのリファレンスからその配列の要素数を得る方法とかリストへ引き戻す方法って何かありますか? と, 同じように無名ハッシュへのリファレンスからkeysのリストを取り出したりする方法とか…誰へとも無く訊いてみる