名前のとおりの何か。
http://www.eiji8pou.net/download/nsaout20111006.zip
exec_dll "nsaout.dll/from.bmp,to.bmp" ; nsaフォルダの中にあるfrom.bmpを、to.bmpと言う名前で外部に出力する。
ファイルを間違えたので再アップ。
@muimui69: 新しい2TBのハードディスク届いた。これでRAID組めるー。現在作業中。
裸族のインテリジェントビル5Bay USB3.0 eSATAコンボ(今から考えると、かなり無駄な高スペック) と HGST 3.5inch 7200rpm 2.0TB 64MB SATA 6.0Gbps 二台を揃えたのでRAIDとやらを組んでみた。単純なRAID1、ミラーリングである。
設定してみたものの、つないでも動かない。認識しない。泣けた困った。
そのままにして数日が経過した後、兄から電話がかかってきたので、野暮用を済ますついでに聞いてみる。あっさり解決。Windows側でなんかしないといけなかったらしい。
その後、(論理)フォーマットして使えるようになった。
で、バリバリとデータを移す。高い大容量をRAIDまで組んだんだ、これをアーカイブにしてしまえばいーじゃんいーじゃん? そんな感じで、ほうぼうから自炊本とか動画とかをどんどん入れる。これで、500GBくらいは埋まった。
さらに、溜りに溜まった画像を動かしてみた。動かすのはプログラムにやらせたので、数はわからないのだが、だいたい40,000ファイルくらい動かしたあたりで書き込みエラーが出た。残り10,000ファイルくらいじゃなかったかしら。
しかし、画像がこの数ってのもなかなかすごいな。やっぱり、画像を認識して分類タグ付けする人工知能の開発が急がれるね。
で、かぶった画像なんかは省きながら(画像の同定にはMD5を使った)、それをjpgからpngに変換しつつ動かしたのだが、途中で失敗した。
@muimui69: もうやだ。全てのやる気が失せた。ちょっと聞いてくれよ。スクリプト組んで、50,000ファイルほどRAID1のハードディスクに書きこんでいたら、途中でエラーが出てRAIDが壊れた。復旧方法か復旧業者を知らないか。溜め込んだ自炊書籍とかも入ってるんで、フォーマットはなしの方向で。
2011-10-02 23:51:07 via web
ふてくされるだけでは何なので、修理を依頼してみた。ここで間違えたなーと後で思ったのは、先に誰かに相談してもよかったことだ。
ググッて見つかった最初の方にあった業者に、フォームから無料診断をお願いした。
翌日月曜日、電話で反応があったので、詳しく説明、早速HDDを送った。頼んだぞクロネコ! ちなみその時対応した人は、クラッシュした理由はハード的なものでは?と推測していた。物理的にアレしていたか、ファームウェアがアレしていたか、そんな感じ。
@muimui69: 業者にハードディスクが届いたので、復旧に入ってもらう。おかねーおかねー、さようならー。
2011-10-05 20:59:27 via web
早速中身をみてもらう。速くて高いコース(データの鮮度が高いままなので復旧可能性高)とゆっくり安いコース(前者の逆)のどちらかと、入ってたデータのうちどれを優先するかを聞かれた。なので、考えた末にゆっくりコース(流石に高いんよ)、優先は自炊本のpdfで、pngやjpgは最悪破棄でよい、と回答。で、最大5日くらいかかると言われて作業に入ってもらった。
で、本日木曜日、10月6日、症状的にはほんと単純にディレクトリが壊れてただけみたいで、すぐにほぼ全てが復旧できたっぽい。それを告げる電話があった訳だが。
「ええ、○○○とか×××とか無修正とかのフォルダが見えて、その中のファイルAAAとかBBBとか、普通に開けますね。相当ありますけど、全部大丈夫みたいです」
他人にハードディスクの中身を読み上げられるって、これ一体なんて羞恥プレイ? 例えば釘宮声で言われたりしたらそれはそれで興奮もできるだろうけど、男に言われてもなー。いやいやいや、贅沢はいかん。いやいやいや、それもなんか違う。
同じく超俺メモ。
NScripterがDLLに対して開放している関数の中に、AllocDIBなるものがある。
これを使えば、DLLの中で、スプライト等を介さずに直接nsaファイルの中の画像を引っ張り出せる。
なお、事前にNScripter側でaddnsadirを実行していれば、DLLの中からの探索でもそれは有効である。
※これを使って、nsaファイルの中のファイルを好きなファイル名で外部に出力するDLLが組めるなあ、と言うところで寝る。
void nsa2out(char *from_filename, char *to_filename){ DIBDATA dib; /* ファイルの取得 */ AllocDIB(&dib, from_filename); /* ヘッダー作成 */ unsigned char header[54] = { 66,77,54,16,14,0,0,0,0,0,54,0,0,0, /*_BITMAPFILEHEADER_*/ 40,0,0,0,128,2,0,0,224,1,0,0,1,0,24,0,0,0,0,0, /*_BMPINFOHEADER_前半_*/ 0,16,14,0,19,11,0,0,19,11,0,0,0,0,0,0,0,0,0,0 /*_BMPINFOHEADER_後半_*/ }; /* サイズ設定 */ header[18] = dib->width % 256; header[19] = int ( dib->width / 256 ); header[22] = dib->height % 256; header[23] = int ( dib->height / 256 ); /* 出力 */ int line = dib->width * 3; while ( 0 < line % 3 ) { line ++; } FILE *fp; fp = fopen(to_filename, "wb"); fwrite(header, sizeof(header[0]), 54, fp); fwrite(dib->bits, sizeof(unsigned char), line * dib->height, fp); fclose(fp); }
超俺メモ。3時間くらいはまったような気がする。
NScripterのDLLに対して開放されている関数に、NSAGetFileなるものがある。これについてうまく動かなくてがたがた暴れてしまったので、仕様を記すことにする。
NSAGetFileは、ファイル名を指定すれば、nsaファイル群の中を探してそれがあるかどうか、あった場合には、どのnsaファイルか、その他よくわからん数値を二つ返す。
char *filename = "bgm_mode\\all_btn.bmp"; // 探したいファイル名を定義 char arc[256]; // どのnsaファイルに入っているか、ファイル名を受ける文字列配列を定義。 // よくわからん数値二つ。 unsigned int ptr = 0; unsigned int size = 0; NSAGetFile(filename, arc, &ptr, &size); // これで、arcの中にnsaファイル名が入る。
なんかそうとう肩透かしな関数だったな。
@muimui69: 地震? 体感3秒
2011-10-05 23:34:13 via web
@muimui69: 業者にハードディスクが届いたので、復旧に入ってもらう。おかねーおかねー、さようならー。
2011-10-05 20:59:27 via web
@muimui69: かねーかねー、羽根が生えてとんでいくー。
@muimui69: iPhone 4S、今使ってる3Gの二年縛りが切れた時に、自分の心に聞いて買うかどうか決める。
@muimui69: 今あるiPhone3Gは、自宅使い用のiPod touchになるのか。胸熱。
@muimui69: iPhone5は出なかったのか。発表されたのはiPhone4Sか。うむむ。難しいところだなあ。電話番号はナンバーポータビリティがあるからいいけど、メールアドレスは持ち越せないだろうから、機種交換だけが楽でいい。
@muimui69: ねむてえ。この眠さは一体なんなんだ。
@muimui69: おはようございます! by Credens justitiam - 30 シェイク 06:44 #CrazyAlarm
@muimui69: @nlo3oln おっと、そうでしたか。うろ覚えで話すものではありませんね。失礼しました。
2011-10-05 01:05:18 via web to @nlo3oln
@muimui69: 職場で、「来年度は持ち歩くためのノートPC買おうぜ。私物じゃなく」と言う声が出てそれはいいんだが、買うとしたら何買うよ。iPadでもいいんじゃないかとか思ったり。
2011-10-05 01:01:20 via web
2011-10-05 00:59:29 via web to @nlo3oln
コメント等は基本的に自由ですが、通りすがりとかななしさんとかの場合、いじっても面白くないので放置する可能性があります。
|
|
最新コメント一覧
最新トラックバック一覧
言及URL
言及ISBN/ASIN
言及JAN/EAN