ふー、ちょっと疲れました。

たった今、試行錯誤の末、簡単なリソースライター、「ResWriter」の初版を脱稿した所です。

 

えっ?ResGeneというリソースリーダー・ライターを作っていたのじゃないのか?、とね?

 

その通りなんですが、どうも「リソースファイルを読み書きするツール」という概念が腑に落ちなくて、悩んでいたこと、ご高承のとおりです。(「【C#学習】雑談-用語と概念整理、Resources周り」)で、結局「リソースファイルを読んで、また書くツールは、C#のリソースが単にイメージ、文字列、ファイルだけなのであまり意味がなく、『リソースを読んで、リソースファイルを書く』ことと、『リソースファイルを読んで、リソース(の内容)を書く』しか意味がないのではないか」と思い当たりました。

 

と、いうことで...

 

すぐに方針変換して、まずは「リソースを読み込んで、リソースファイル(*.resources、*.resx)に書き出すツール」を作ってみようということで「ResWriter」に着手しました。

 

「仕様」はリソース区分を次のようにして、入出力を「私的に統一」してみました。

1.イメージファイル(区分 Image)→Imageオブジェクトで読み込み、書き出す(Bitmap変換されるようです。)

2.ファイル(区分 File)→ファイルを読み込んでバイトデータにシリアライズし、ストリームで書き出す。

3.文字列(区分 String)→手書き入力して書き出す。

 

これがその外観。

 

入力ダイアログ。こいつはリソース区分により「ファイルを開くダイアログボタン」や「入力エディットボックス」が、ラジオボタンの横に現れたり、消えたりします。

 

 

ドラッグアンドドロップもでき、その際にも使う編集ダイアログ。(データを編集できるのは区分Stringだけです。)

 

削除と編集は複数リソースをまとめて処理できる複数選択が可能です。

 

出力は(現在の段階では、その内容をこれから読んでチェックしてゆかなければならないので)一度に*.resourcesファイルと*.resxファイルの二種を作成します。(本日の段階で上の4つのリソースについては両ファイルともにちゃんと出力しているようです。)

 

次のステップは、このResWriterをブラッシュアップするために、先のResGeneのスケルトンを改造してResReaderを作る予定です。(といっても大したことはせず、リソースファイルに書かれている内容をResourceReaderのEnumeration機能により列挙するだけです。(↓のようなResourceReaderの出力(「リソース名: リソースデータ(Type リソースタイプ)」)になる予定です。)

 

ps. マジでC#プログラミングを始めちゃって「猫でも」学習をおろそかにしている今日この頃、でした。