【VB.Net】テキストファイルを作る際にうっかりやらかしベスト3

どうも!リョクちゃです。

今回は、自身がアプリケーションを作ったとして。その動作として

テキストファイルを作る処理が書かれていたとします。

そんな時にでよくやってしまう、筆者のうっかりベスト3位を紹介します。

※リリースした時点で見つかるモノではなくデバッグ時に見つかるモノとしています。

リリースしてからだと、大惨事を招きかねないので

ちなみに前回は、こちらの記事になります。

データを管理する場合、データベースで管理が一般的だと思いますが、どうしてもコストに見合わない場合はありませんか?そんな時に1つの考えとして、テキストファイルで行うデータ管理について筆者の個人的な考えを元にサンプルを交えて紹介しています。



それでは早速ベスト3を紹介していきます。

3位:エンコード間違い(文字化けなど)

これ、意外とよくやってしまうんです……。

間違えることで文字化けや、破損ファイルになったり……。

これ有ると無いで、外部連携のアプリが動かなかったりっていうのが、実際にありました。

エンコードについては、下で補足していきます。

スポンサーリンク




エンコードって?

エンコードencode)、符号化(ふごうか)とは、アナログ信号やデジタルデータに特定の方法で、後に元の(あるいは類似の)信号またはデータに戻せるような変換を加えることである。

引用元:Wikipedia

エンコード(文字エンコード)にもいくつか種類があり、一般的には

  • Shift_JIS(日本語)
    CP932とも位置付けられる。(厳密には違うが広義(広く見て)としては同じ)
    漢字を含む日本語を表現できる文字コードとして考え作られた規格
  • Unicode
    全世界で使われる全ての文字を使えるようにと考えて作られた文字コードの規格
    符号化文字集合といわれる。
  • UTF-8
    世界で最もポピュラーな文字コードの規格
    文字符号化式といわれ、UTF-16やUTF-32も同様
  • UTF-16
  • UTF-32
  • ASCII(アスキー)
    符号化文字集合といわれる
    半角英数字や一部記号などを使えるように作られた文字コード。

があります。いくつかは聞いたことがあるのではないでしょうか?

例えば、アプリではShift_JISでテキストファイルを作ったけど、
別のアプリではUnicodeで開いたら文字化けしてしまった場合は、
おそらくエンコードでエラーが発生しているからということになります。

(下イメージになります。)

これが起きないためには、事前に連携する外部アプリがある場合は、

外部アプリの要件に合わせてエンコードを合わせておきましょう。

2位:保存先が見つからない!!

テキストファイルの保存先が見つからず、エラーが発生して止まってしまうことないですか?

筆者、意外とありまして……だいたいこういったときは、

アプリ側で保存先を作ろうとする処理でうっかりとやってしまいます。

これを回避するために、事前の保存先があるかチェックを行い、

なければ作成するといった対策を講じておきましょう。

そうすることでデバッグ時のエラーを防げます。

コードだと下のような感じになります。

保存先のチェックを

System.IO.Directory.Exists(“保存先”)

でチェックをしています。

保存先を作成するには、

System.IO.Directory.CreateDirectory(“保存先”)

で作成しています。



1位:別のプロセスで使われている!

栄えある?!第1位は、別のプロセスで使われているが故に、

テキストファイルを開くことができない。や

テキストファイルに書き込めないといったエラーに見舞われます

これは、アプリ上でテキストファイルのオブジェクトを解放ができていないのが

最も多い原因といわれています。

アプリ外では、ユーザが該当のファイルを既に開いている場合が当てはまります。

意外と対策をしていそうでうっかりしていて対策を講じていないといった事が良くあります。

実際に、筆者も最初出くわしたときはかなり焦りました……。
今ではだいたい原因がわかっているので、「うっかりだ」といった風になりますが……(-_-;)

これを回避するには、オブジェクトの解放を忘れないことです。

これに尽きます。

対策コードとしては下のようになります。

GC.Collect()は外部ファイルを使って書き込み・

読み込みをする場合は記述しておきましょう。

(不要になったメモリ領域を解放してくれるので。)

※ 自動的に解放されるのですが、外部ファイルを操作する場合は、

別途記述する必要があったはずです。

無料キャリアカウンセリング

おわりに

今回は、筆者がよくやってしまうテキストファイル作成の際に

うっかりやらかしベスト3の紹介でした。

今でもよくやってしまうので、気を付けなきゃです。

皆さんの参考になってなれば嬉しいです。

最後に、VB.Netを勉強する上で参考になる書籍を下に取り上げています。

良ければご参考までにご覧いただければと思います。

・こちらの書籍を参考にVB.Net勉強しています。

スポンサーリンク