2014/03/29

【C#】Null判定をよりスマートに(三項演算子やnull合体演算子、Null許容型)

プログラミングをしているときによく目にする「NullReferenceException」
Javaでいうところの「ぬるぽ(NullPointerException)」「ガッ」

なんも入っとらんのに、何参照しとんねん!! ってやつ。


だから、そのオブジェクトを参照する前に本当に参照してよいかを判定しれやれば良い。

例として「value1」と「value2」を使ってまとめていく。
※stringは参照型のため、Nullのままvalue1.Lengthなんて参照するとNullReferenceExceptionになる。

string value1 = null;
string value2 = "abc";


2014/03/22

【C#】いろんなパディング(空白埋めやゼロ埋め)

固定長IFファイルの作成では必要不可欠な処理、パディング。
文字長を一定にしたり、ブラの隙間に夢を詰めたりいろんな使い方がされる。

このエントリでは以下の3種類の方法を紹介する。
  • 基本的なパディング(String.Format)
  • 指定の文字でパディング(PadLeft、PadRight)
  • マルチバイト文字が含まれるパディング(応用編)

2014/03/15

【C#】ダブルクォーテーションで括ってCSVを出力する(Listクラスを弄る)

DBからデータを抽出し、編集してCSVに出力する簡単な機能。
今回はGenericのListクラスを継承しAddメソッドを弄ることで、ダブルクォーテーションを付加しながらCSVを出力するプログラムを作った。

Collections.Generic.List<T>クラスは拡張性を犠牲にしてパフォーマンスを優先している。
そのため、継承して使うのは推奨されていないっぽい。

System.Collections.Generic.Listt<T>は、継承ではなくパフォーマンスを目的としたジェネリック コレクションです。System.Collections.Generic.Listt<T>には、継承クラスの動作を変更しやすくする仮想メンバーは含まれていません。引用元:CA1002: ジェネリック リストを公開しません – MSDN

でも、コンマ何秒の性能を重視するようなプログラムじゃないし、ちょっとくらいいいよね?
CSharperの先輩たちに見せたら怒られるかな?

2014/03/08

サクラエディタでAltを押し続けないと矩形選択できない

国産高機能テキストエディタ「サクラエディタ」をインストールしたは良いが、なぜか[Alt]を押し続けないと矩形選択できない。

以前は[Alt]+「←↓↑→」で矩形選択が開始され、あとは[Alt]を押し続けなくても方向キーだけで選択できたはずのに…

原因は「キー割り当て」にあった。


※ 追記:2015/06/23
  画像が潰れて見難いので、最後のスクショだけ撮り直しました。

2014/03/01

【VBA】Excelのシート名の一覧を取得し、変換する

WS000029
【VBA】Excelのシート名を一括置換するというエントリを投稿したところ、『VBAマクロ書かなくても、ソフト使えば一括変換できるよ』的なコメントを頂いた。(ちょっとスパムっぽかったけどw)

以前のエントリは文字列置換を用いたシート名の変換だったが、教えてもらったものは「今のシート名」と「変更後のシート名」を一覧にして一括で置換するものだった。


便利そう!


でもシステム屋さんはお客様のPCを借りたり、サーバなど好き勝手インストールできない環境で仕事をしているので、インストールが必要なソフトは使えない。


でも、便利そう!!

これは、私のパーソナルマクロ集に加えたい!!!



ってことで、VBAマクロで再現してみた。