Monthly Archives: 5月 2012

[C#]Listから最初のn件のデータだけ処理する

2012年5月17日 (カテゴリ: C#:)

Listに登録したデータから、最初のn個だけを残して他は削除したい場合は RemoveRange()メソッドを利用します。 int n = 10;   List<string> dataList = new List<string>(); if ( lstTest.Count > n ) { dataList.RemoveRange( n, dataList.Count – n ); }int n = 10; List<string> dataList = new List&…


続きを読む

CとC++の非互換性:文字リテラルのサイズ

2012年5月17日 (カテゴリ: C:)

最近知った豆知識です。 CとC++で、以下のコードを実行したときの結果は異なります。 printf( "%d", sizeof(’A’) );printf( "%d", sizeof(‘A’) ); 実行してみると、Cでは4が表示され、C++だと1となります。 理由は、C言語の仕様上文字リテラルはintとみなされ、C++ではcharとみなされるから。 以下、仕様より An integer character constant has type int.   The value of an integer char…


続きを読む

[Windows]メモリエリア関係の用語まとめ(System.Diagnostics.Processクラス)

2012年5月16日 (カテゴリ: C#:)

System.Diagnostics.Processにあるメモリ関係のプロパティを見ていたら、よく分からなくなってきたので、整理を兼ねてメモしておく。 メモリ プロセスが使用しているメモリには、OSが管理するメモリ領域と、プログラムが使用するメモリ領域の2つがある。 OSが使用するメモリ領域 OSが使用するメモリ領域には、ページング化なエリアと、不可なエリアが存在する。 Process.NonpagedSystemMemorySize: ページングされないシステム メモリの量 Process.PagedSystemMemorySize : ページング可能なシステム メモリの量Process.N…


続きを読む

[C#]自前でToString()メソッドを実装時に気をつけるべき9つの事

2012年5月16日 (カテゴリ: C#:)

C#では、ObjectクラスがToString()メソッドを持っているため、全てのオブジェクトがこのメソッドを継承しています。.NetFrameworkで用意されているクラスでは、ToString()をコールする事で有用な情報が帰ってくるのですが、自作のクラスではクラス名が分かる程度で役に立つ情報は有りません。 自前でToString()メソッドをオーバーライドしておくと、開発・デバッグが非常に捗りますが、そのときに注意すべき点が幾つかあります。 ToString() メソッド内で例外を発生させない また、オブジェクトの内部状態に情報がセットされていない場合でも、空文字列やnullを返さないよ…


続きを読む

[C#]Windowsで実行中のサービス一覧と、起動状態を取得する

2012年5月16日 (カテゴリ: C#:)

.Net Frameworkを使用して、Windowsで稼働中のサービス一覧を取得するにはSystem.ServiceProcessパッケージのServiceControllerクラスを使用します。 下記のコードで、全サービス一覧の列挙と、サービスの起動状態を取得できます。 static void Main( string[] args ) { //——————— // サービス一覧を取得 //——————— System.ServiceProcess.ServiceController[…


続きを読む

[PHP]htmlからxmlに変換する関数群 : html2xml

2012年5月15日 (カテゴリ: PHP:)

phpでスクレイピングしたい時、htmlからxmlへの変換方法をいつも調べるので、 備忘録代わりに変換関数を作成しました。 この手の変換は、作るプログラムによって元ネタがurlだったりhtml文字列だったりします。 また変換先もxmlテキストが欲しいときやDOMDocumentが欲しいなど様々です。 という訳で、冗長ですが全パターン用意しました。 変換パターンによっては、中身がPHPの関数1行だけというラッパーになっている場合も有りますが、網羅しておいたほうが一覧性が良いかと思い、あえて用意しています。 変換可能なパターンは以下通りです。 url -> html文字列 url ->…


続きを読む

[C#]WebBrowserコントロールを使用して、指定したサイト全体の画像を取得(DLL化しました)

2012年5月15日 (カテゴリ: C#:)

WebBrowserコントロールを使用して、プログラムから指定したサイト全体の画像を取得します。 サンプルコードは、以下の通り。 using System; using System.Drawing; using System.Runtime.InteropServices; using System.Windows.Forms; using System.Runtime.InteropServices.ComTypes;   namespace SiteCaptureSharp { //*******************************************…


続きを読む

コマンドラインから,指定したURLのページ全体の画像を保存する

2012年5月15日 (カテゴリ: 未分類:)

特定のWebサイトの内容全体を、コマンドラインからjpgファイルとして取得したかったのですが、 やりたい事を実現できそうなソフトが無さそうだったので、自作してみました。 例えば、以下のコマンドを実行すると… CaptureSiteToJpg.exe /url http://www.yahoo.co.jp/ /out yahoo.jpgCaptureSiteToJpg.exe /url http://www.yahoo.co.jp/ /out yahoo.jpg このように、ページ全体の画像をjpgファイルとして取得する事が出来ます。 縦に長いページでも、途中で切れる事はありません。…


続きを読む

[C#]WebBrowserコントロール使用時、”Webページへのナビゲーションは取り消されました”エラーが出る時は?

2012年5月15日 (カテゴリ: C#:)

WebBrowserコントロールを使用してNavigate()でサイトにアクセスした時、 “Webページへのナビゲーションは取り消されました”エラーが出る時があります。 その原因は多分…、指定したURLが間違ってます。 (例えば、http://www.yahoo.co.jp/ではなく、http://wwww.yahoo.co.jp/を指定したとか…) 初歩的なミスですが、気づかずにしばらく悩んでしまったので、備忘録としてのメモです。


続きを読む

[C#]現在のスレッドはシングル スレッド アパートメントでないため… エラーが出たときの対処法

2012年5月15日 (カテゴリ: C#:)

コンソールアプリで、WinFormのコントロールを使用すると以下の例外が発生します。 System.Threading.ThreadStateException はハンドルされませんでした。 Message=現在のスレッドはシングル スレッド アパートメントでないため、ActiveX コントロール ‘xxxx’ をインスタンス化できません。 Source=System.Windows.Forms StackTrace: 場所 Program.Main(String[] args) 場所 Program.cs:行 33 場所 System.AppDomain._nExecuteAssembly(…


続きを読む

[C#]ファイルを削除した時に、ゴミ箱へ移動させる

2012年5月14日 (カテゴリ: C#:)

C#(.Net Framework)のプログラムから、ファイルを削除したときゴミ箱に移動させる方法です。 C#では、System.IO.File.Delete()メソッドでファイルの削除を行う事が可能ですが、この方法ではファイルがゴミ箱に移動される事無く、いきなり削除されてしまいます。削除ではなくゴミ箱への移動を行いたい場合は、FileSystemクラスのDeleteFile()メソッドを使用します。 FileSystemクラスは、Microsoft.VisualBasic.FileIOパッケージに登録されているのですが、 標準では使用できないため、参照設定でSystem.Printing(M…


続きを読む

[C#]プリンタ一覧と、デフォルトプリンタを取得するには

2012年5月14日 (カテゴリ: C#:)

C#(.Net Framework)のプログラムから、プリンタ一覧とデフォルトプリンタを取得する方法です。 .Net Frameworkでプリンタの情報を取得するには、System.Printingパッケージを使用します。 System.Printingパッケージは標準では使用できないため、以下のように、参照設定でSystem.Printingを追加する必要があります。 パッケージの追加を行ったら、以下のコードでシステムに登録されているプリンタ情報が取得できます private void button1_Click( object sender, EventArgs e ) &…


続きを読む

ソーラー発電システムの自作 その3(チャージコントローラ)

2012年5月9日 (カテゴリ: ソーラー発電:)

前回までの記事で、ソーラーパネル側、バッテリー側の準備がそれぞれ出来ました。 ソーラー発電の自作用に,パネルを購入しました ソーラー発電システムの自作 その2(バッテリー側) 今回は、両者を接続する事にします。 ソーラーパネル接続の仕組み ソーラーパネルとバッテリの接続ですが、仕組み上は、ソーラーパネルからの端子をバッテリーに直結することは一応可能です(実際に30分ほど直結してみましたが、ちゃんと充電してくれました)。 ですが、それだと電気を使わない日が続くとバッテリーが過充電状態になってしまいます。また、雨の日が続いて充電が出来ていないのに電気を消費し続けてしまうと、今度は逆に過放電の状態に…


続きを読む

ソーラー発電システムの自作 その2(バッテリー側)

2012年5月9日 (カテゴリ: ソーラー発電:)

前回、ソーラーパネル側の準備が終わったので、次は室内側の仕組みづくりです ソーラーパネルで発電した電気はバッテリーに蓄電したいのですが、いきなり仕組みを全部作ると問題があったときに切り分けが面倒になります。 なので、まずは簡単なバッテリーとLEDのライトを用意し、バッテリーからライトを点灯出来るようにしておきます。 バッテリー 最初に用意するのはバッテリーです。 バッテリーは、12Vの自動車用鉛蓄電バッテリーを使用します。 今回は、不要なバッテリーを貰う事が出来たので、これを使用する事にしました。 シガーソケット バッテリーにLEDライトを直結しても良いのですが、それだと拡張性が無いので5口の…


続きを読む

電線の断面積sq(スケア)と、流せる許容アンペアの対応表

2012年5月9日 (カテゴリ: ソーラー発電:)

sq(スケア)と、許容電流の対応表です。 0.5 sq – 7A 0.75sq – 10A 1.25sq – 15A 2.0 sq – 20A 4.0 sq – 30A 5.0 sq – 45A 5.5 sq – 50A 8.0 sq – 70A 14 sq – 90A 22 sq – 110A0.5 sq – 7A 0.75sq – 10A 1.25sq – 15A 2.0 sq – 20A 4.0 sq – 30A 5.0 sq – 45A 5.5 sq – 50A 8.0 sq – 70A 14 sq – 90A 22 sq – 110A 基礎から学ぶ電気回路計算 ぱいすら女子


続きを読む

ソーラー発電の自作用に,パネルを購入しました

2012年5月9日 (カテゴリ: ソーラー発電:)

ソーラーパネルについて以前検討した内容を元に、楽天でソーラーパネルを購入しました。 目的はソーラー発電システムの自作です。 検討の結果、購入する事にしたのは以下の商品です。 単結晶ソーラーパネル100W人気のサイズ(85x85cm)価格:15,900円(税込、送料込) 決定のポイントは価格が安かったのと、庭に設置する際のサイズがちょうど良かったからです。 他の商品はたいてい横長のパネルですが、これは正方形なので横幅が小さく設置場所への収まりが良いです。 商品の発送は速く、注文してから2日後に到着しました。 余談ですが、購入時に着圧ソックス(?)がおまけとしてもらえるキャンペーンが行われていたの…


続きを読む

[電子回路]リレーの仕組みの基礎知識

2012年5月8日 (カテゴリ: 電子回路基礎:)

確認に使用した部品  G6E-134P-US DC12  オムロン製  (マルツで購入。1個325円) 仕様書 マイクロリレー 形G6E | オムロン電子部品情報サイト G6E-134P-US DC12 :オムロン制御機器 カタログ ピンアサイン 5本のピンが出ていて、各ピンの番号は1,6,7,10,12pinになる。 番号が連番じゃないのは、各ピンの位置が物理的に離れているため。1番ピンをブレッドボードの”1″のところに刺すと、次のピンが”6″の位置に刺さるようになっている。ちょっと見づらいけど下の写真を見ると分かるかも。 仕様書より、このパー…


続きを読む

[C#]MemoryStreamに書き込んだ文字が、読み出し側で取得できないときにチェックする事。

2012年5月8日 (カテゴリ: C#:)

WriteLine()で書き込んでも、フラッシュしないと読めない(場合がある)。 特に、長いデータを書き込んだとき、最後の方が一部だけ読めないときなどはこのパターン。 MemoryStream stream = new MemoryStream(); StreamWriter writer = new StreamWriter( stream );   writer.WriteLine("test");   writer.Flush(); // <= これが必要MemoryStream…


続きを読む

[C#] WinFormのプログラムからコンソール(標準出力)に文字を出力する

2012年5月8日 (カテゴリ: C#:)

Windowsでは通常GUI(WinForm)のプログラムを作成した場合、通常ではコンソールへの文字出力を行う事ができません。コンソールアプリケーションでの文字列出力メソッドのSystem.Console.WriteLine()を試しに呼び出してみても、残念ながら何も出力されません。 ですが、プログラムのデバッグなど、コンソールに文字出力ができると便利なな場合も有ります。 このような場合、Win32 APIをコールする事で出力が可能です。 using System; using System.Windows.Forms;   using System.Runtime.InteropS…


続きを読む

縦横のサイズ(尺、mm)から、面積を求める早見表

2012年5月5日 (カテゴリ: 未分類:)