今回はファイル文字コード変換ツールを自作したいと思います。
変換できるファイルはテキストファイルとCSVファイル(又はTSVファイル)です。
CSVをエクセルに読み込む際、文字コードの違いから文字化けが発生することがよくあります。
特に業務アプリケーションから出力されたCSVファイルはUTF-8形式で出力されるケースが多く、「CSVを読み込んだら文字化けしたので、何とかならないか?」という問い合わせを受けることが時々有ります。
CSV分割ツールと同様に自作もそれほど難しくなく、ある程度流用もできるため、今回はユーザーコントロールという新しい便利機能についても紹介したいと思います。
今回は、その第1回目ということで、プログラムの概要と設計をしていきましょう。
概要を把握しよう
今回作るファイル文字コード変換ツールの画面レイアウトは次の様になります。

変換元と変換後のファイル名、及び文字コードの指定が出来る様になっています。
ヘッダ行数の入力が無いだけで、あとは同じレイアウトです。
仕様を整理しよう
ファイル文字コード変換ツールの仕様は以下の通りです。
- 変換元のファイル名、及び出力ファイル名が指定(入力)できる
- ファイル名はダイアログでも選択できる
- ダイアログはユーザーコントロールとして作成する
- CSVファイルの読み込み、出力時の文字コードが指定できる。
- 文字コードは shift-jis か utf-8をドロップダウンで指定できる。
今までとの違いは3行目の「ユーザーコントロールとして作成する」です。
これについては次回に詳しく説明しますので、今回は軽く聞き流す程度にしておいてください。
<ファイル選択ダイアログの例>

<ファイル保存ダイアログの例>
右下のボタンが「保存」になっており、ファイルの種類が選べる点がファイル選択ダイアログと異なります。

フローで処理イメージをつかもう
それでは、フローチャートで処理手順を理解しておきましょう。
今回も分かりやすさを優先に処理手順(ロジック)をまとめています。
考え方は CSV結合ツール(バージョンアップ編) と同じですが、もっとシンプルです。
CSV結合ツールでは複数ファイルを結合するという仕様でしたが、今回は1つのファイルを変換するただけになっています。
また、対象がCSVファイルだったため2個目以降はヘッダを捨てるという処理が必要でしたが、今回はそれが不要です。
従って、変換元ファイルから1行読み込み、単純に変換後ファイルに書き出すという処理だけになっています。
従って、巨大なファイルを変換してもメモリー不足になることはありません。

使うコントロールを決めよう
今回は、Label、Button、ComboBoxの他、自作のユーザーコントロール「FileSelectUserControl」の4種類のを使います。

ユーザーコントロールとは、複数のコントロールが1つのまとまったコントロールです。
例えるなら、エクセルやワード、パワーポイントなどで図形をグルーピングする機能がありますが、それと同じです。
詳しくは次回説明します。
まとめ
今回はファイル文字コード変換ツールの概要と簡単な設計を行ってみました。
次回はプロジェクトの作成とユーザーコントロール以外の画面レイアウト作成を行います。