3流プログラマのメモ書き

元開発職→現社内SEの三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

C#

(.Net)C#からExcelへの遅延バインディングで、ソートする

(.Net)C#から遅延バインディングでExcelファイルに読み書きするで、C#からExcelへ遅延バインディングを使ったアクセスを書きましたが、今回は任意の範囲のデータの並び替え(ソート)を行う方法です。 並び替えはRangeオブジェクトの Sort メソッドで設定でき…

(.Net)C#からExcelへの遅延バインディングで、オートフィルタを設定する

(.Net)C#から遅延バインディングでExcelファイルに読み書きするで、C#からExcelへ遅延バインディングを使ったアクセスを書きましたが、今回はオートフィルタを設定する方法です。 Rangeオブジェクトの AutoFilter メソッドで設定できます。 例えば、A1:B5の…

(.Net)C#からExcelへの遅延バインディングで、列幅を調整する

(.Net)C#から遅延バインディングでExcelファイルに読み書きするで、C#からExcelへ遅延バインディングを使ったアクセスを書きましたが、今回は列幅、行高さを変更する方法です。 Rangeオブジェクトの ColumnWidth と、RowHeight で指定できるようです。 例え…

(.Net)C#からExcelへの遅延バインディングで、罫線を引く

(.Net)C#から遅延バインディングでExcelファイルに読み書きするで、C#からExcelへ遅延バインディングを使ったアクセスを書きましたが、今回はセルの罫線を引く方法です。 流れとして、Range インスタンスから Borders を取得し、そこから Border(どこの線か)…

(.Net)C#からExcelへの遅延バインディングで、書式設定を行う

(.Net)C#から遅延バインディングでExcelファイルに読み書きするで、C#からExcelへ遅延バインディングを使ったアクセスを書きましたが、今回はセルの書式設定を行う方法です。Rangeオブジェクトの NumberFormatLocal プロパティに設定してやればいいようです…

(.NET)DataReaderで取得したデータをDataTableとしてもつ方法

接続型でDBにクエリを実行した場合、結果はDateReaderで取得することになるかと思います。 その結果をさくっとDataTableに変換したいという場合は、DataTable.Loadメソッドを使うといいようです。 例えば System.Data.SQLite ライブラリを使った場合はこんな…

(.NET,SQLite)共有フォルダのデータベースファイルに接続するには...

System.Data.SQLite ライブラリを使って共有フォルダのデータベースファイルに接続するには、以下のようにしたのではダメでした。 using (var conn = new SQLiteConnection(@"Data Source=\\srv01\share\hoge.sqlite")){ .... } 以下のように、余分に \ を付…

(.Net,SQLite)データベースにSQLiteを使ってみた

.Netアプリでスタンドアロンデータベースを使うときはいつもMDBを使ってたんですが、今回はじめてSQLiteを使ってみました。 .Netアプリケーションから SQLite にアクセスする方法はいくつかあるらしいですが、今回はVB.NETから組み込みデータベースのSQLite…

(.Net)動的に列挙型の値を取得したい(文字列から列挙型の値にしたい)

列挙型の値を指定するときに、動的に出来れば便利って思ってました。 例えば、 enum Hoge{ alpha, bravo, charlie, delta, echo } という列挙型があって、設定ファイルから読み込んだ文字列値を元にこの列挙型を設定したい時などです。 そのような場合は、以…

(.Net)キャストを動的に行いたい

例えば、外部ファイルに値とそれに対応する型が書かれており、それを.Netアプリで読み込んだ時に、ファイルに記述された型に合わせて値を変数化してやりたいといった場合の方法です。 この場合、Convert.ChangeType メソッドを使ってやるといいようです。 Ty…

(.Net)C#から遅延バインディングでExcelファイルに読み書きする

以前に、.Net(C#)アプリからExcelのVBAを呼び出したい(遅延バインディング)で、C#からマクロを実行する方法を書きました。今回は、より一般的なセルへの読み書き方法のメモです。 開発マシンのExcelのバージョンに左右されないように遅延バインディングでア…

(.Net)固定長のテキストデータを読み込むための汎用的な方法

固定長のテキストデータを読み込んで何か処理をさせたいという場合で、テキストデータのフィールドの桁数がしょっちゅう変わるのでそのたびにソースを直すのは大変という事態が発生しました。 なので、読み込むテキストデータのフィールドを外部ファイルで定…

(.Net)任意のプロセスのCPU使用率を出すコード

任意のプロセスのCPU使用率を求めたいと思ってググっていたらVisualStudioフォーラム:複数のプロセス毎のCPU使用率同時取得にドンピシャな答えがありました。 コピペになりますが、ベンチマークソフト SUPER_PI のCPU使用率を求めたい時はこうなります。 mS…

(.Net)ターミナルサーバでユーザのプロセスのメモリ使用量を取りたい。

WindowsServer2003上でターミナルサーバを運用してますが、どうやらメモリを使いすぎているユーザがいるようです。 それで、数日間どのユーザがどのプロセスでメモリを使いすぎているのか経過調査を行うことにしました。 当初はパフォーマンスログで取ろうか…

(.Net)Stringの仕様にやられた

事の発端は下記のように string 型のリストを匿名メソッドを使って処理しようとしたときです。 List<string> lst = new List<string>(); lst.Add("test1"); lst.Add("test2"); lst.Add("test3"); lst.ForEach(delegate(string s) { s = "hoge"; }); lst.ForEach(Console.Writ</string></string>…

Visual Studioセットアッププロジェクトのカスタム動作

Visual Studioセットアッププロジェクトでの、カスタム動作の使い方です。 カスタム動作を使うとVisualStudioで作ったインストーラだけでは難しい操作が行えるみたいです。 カスタム動作の発生するイベントには、インストール時、確定時、ロールバック時、ア…

(.Net)コントロールのプロパティアクセスは遅い!?

.Netではコントロールの表示だけでなく、プロパティアクセスも遅いということに最近気づきました。 下記のコードを実行して、ループ内からTextBoxのTextプロパティにアクセスしたのと、一旦、ローカル変数にTextプロパティの値を移しておきそれを参照した場…

(vb.net)VB.NetではList.Findとかのデリゲートの実装が必要なメソッドは使えない!?

たとえばある List から特定の条件のものを探したいという時、今までは List をループでまわし、その中の条件式で探していました。 しかし、MSDNなど見てみると、 List.Find メソッド:指定された述語によって定義された条件と一致する要素を検索し、List 全…

(.net)紛らわしいTypeofとかいう単語

VB.NetにもC#にもtypeofという予約されてる語がありますが、挙動はまったく異なります。 C#,VB.Net両方やってるとたまに迷うので一応メモ。 VB.Netのtypeof 構文: TypeOf <名前> Is <型> <名前>のランタイム型に<型>との互換性があるかどうかを判断します。…

カスタムコントロールでのデフォルトのフォントの変更

カスタムコントロール(Butonを継承し+αしたもの)を作っていて、デフォルトでのFontプロパティのフォント種を変えてほしいという話がありました。 実は.NetにControl.DefaultFontというプロパティがあるのですが、これは読み取り専用でしかもMSDNによると、…