Category Archives: プログラム カテゴリ "プログラム"のRSS  

[C#]string,char,byteの相互変換

2012年10月22日 (カテゴリ: C#:)

文字を表現する各種データ型の変換方法です。 Stringから他の型に変換する場合は、文字コードの指定が必要となります。 string -> char string str = "hello world";   //文字列をcharの配列に変換する char[] charArray = str.ToCharArray();   //文字列を、1文字づつcharとして処理する foreach (char c in str) { Console.WriteLine( c ); &#125…


続きを読む

[VisualStudioでμITRON]HelloWorldプログラムを作成する

2012年10月21日 (カテゴリ: C, ITRON:, )

前回はμITRONの実装のひとつであるHOS(Hyper Operating System)をダウンロードし、 カーネルのライブラリを作成しました。 Visual Studioで実行可能なμItronの環境を構築する 今回はこのライブラリを使用して、μITRON環境下でHelloWorldを表示させるプログラムを作成します。 今回作成するプロジェクトのフォルダ構成 作業に入る前に、今回の説明の前提を説明しておきます。 まず、前回書いたカーネルのライブラリは準備が出来ているものとします。 Visual Studioで実行可能なμItronの環境を構築する 今回作成するプロジェクトは、以下のフォル…


続きを読む

[対処法]D8045 : C ファイル ‘xxx.c’ を /clr オプションと共にコンパイルできません のエラーが出た時にすること

2012年10月19日 (カテゴリ: C:)

Visual Studioで、拡張子が*.cのc++プログラムをコンパイルする時、以下のエラーが出る事があります。 D8045 : C ファイル ‘xxx.c’ を /clr オプションと共にコンパイルできませんD8045 : C ファイル ‘xxx.c’ を /clr オプションと共にコンパイルできません この場合は、以下の手順でコンパイルオプションを変更するとエラーを回避できる場合があります。 メニューバーの、プロジェクト->xxxのプロパティを選択します。 構成プロパティ->C/C++->詳細設定を選択します。 右側に表示されたコンパイル言語の選択を、「規定」から「C++コードとしてコン…


続きを読む

[C言語基礎]switch文で偶数・奇数の判定を行う方法

2012年10月12日 (カテゴリ: C:)

int型の変数に入っている値をswitch文で偶奇判定するプログラムです。 int a = …; switch( a % 2 ) { case 0: printf( "偶数です\n" ); break; case 1: printf( "奇数です\n" ); break; }int a = …; switch( a % 2 ) { case 0: printf( "偶数です\n" ); break; case 1: printf( "奇数です\n&q…


続きを読む

[PIC]C30コンパイラをインストールする(dsPIC,PIC24用)

2012年10月12日 (カテゴリ: C, PIC:, , , , )

本記事ではPICのC言語向けコンパイラである、C30コンパイラのインストールと動作確認を行います。 C30コンパイラの正式名称は”MPLAB C Compiler for PIC24 MCUs and dsPIC DSCs”で、dsPICや,PIC24シリーズなどの16bitマイコンで使用可能なCコンパイラです。 C30コンパイラはPRO、Standard、Liteと3つのバージョンがありますが、今回は無償で利用可能なLite版を使用します。Lite版でもコンパイラとしてはフル機能が利用できますが、最適化が部分的にしか使用できないため生成される実行ファイルのサイズが若干…


続きを読む

[C#]ファイルの中身を2進数で出力するツール(TextToBinaryDigit.exe)

2012年10月9日 (カテゴリ: C#:)

ファイルの中身を2進数でダンプする必要があったので、勉強もかねてC#で作ってみました。 コマンドラインプログラムで、以下の様な感じで使います。 c:\> type c:\input.txt Hello world にほんご   c:\> type c:\input.txt | TextToBinaryDigit.exe 01001000 01100101 01101100 01101100 01101111 00100000 01110111 01101111 01110010 01101100 01100100 00001101 00001010 10000010 11…


続きを読む

[C#]StreamReaderのRead()がcharではなくintを返す理由

2012年10月9日 (カテゴリ: C#:)

ファイルなどのストリームからデータを1文字読み込むためのメソッドとしてRead()というものが有ります。このメソッドは”1文字”読み込むのだから戻り値はcharでよいはずなのですが、なぜかint型になっています。 なぜintを返すような仕様となっているのでしょうか? それは、Read()メソッドの戻り値は、ファイルから取得した文字に加えて、ファイルの終端(EOF)を返してくるからです。EOFというのは、読み込んでいるファイルがファイルの最後に達してしまい、それ以上読むべきデータが無い状況です。 (ちなみに、EOFに達している状態でさらにRead()をコールしても-1が返…


続きを読む

[C#]指定されたASCIIコードをstring型の文字列に変換する

2012年10月9日 (カテゴリ: C#:, )

C#で、数字で指定されたASCIIコードをstring型の文字列に変換する方法です。 基本的には、charにキャストした上でToString()をコールすれば良いです。 int data = 2; string ans = ((char)data).ToString();int data = 2; string ans = ((char)data).ToString(); これで、ans には0x02(制御コードのSTX)が入ります。 キャストを忘れると正しく動作しません。 以下のコードだとansには”2″(数字の2)が入…


続きを読む

[C#]WebBrowerコントロールで、jQueryを使用して任意のJavaScriptを実行する

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

.Net Frameworkで用意されているWebBrowerコントロールを使用して、JavaScriptを実行できるプログラムを作成しました。実行するJavaScriptは素のままだと使い辛いので、jQueryを自動ロードしています。 例えば、Yahooのトップページに対して下記のコードを実行させると… $(’input#srchtxt’).val( "hello world" ); $(’input#srchbtn’).click();$(‘input#srchtxt’).val( "…


続きを読む

[C#]WebBrowserコントロールで、指定されたURLのページを表示させる

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

以下のコードで、指定されたアドレスのページを表示させる事が出来ます。 private void button1_Click( object sender, EventArgs e ) { webBrowser1.Url = new Uri( "http://yahoo.co.jp/" ); }private void button1_Click( object sender, EventArgs e ) { webBrowser1.Url = new Uri( "http://yahoo.co.jp/"…


続きを読む

[PIC16F88]HI-TECH CでTimer1割り込みを使用する

2012年10月6日 (カテゴリ: C, PIC:, , )

PICの16F88はTimer0,1,2という3つのタイマーモジュールを持っており、それぞれのタイマーは役割が異なっています。 今回は、16F88でHI-TECH Cを使用してTimer1割り込みを利用し、0.5秒周期でLEDを点灯させてみます。 クロックは16F88の内部オシレータを8MHzで駆動させます。 #include <stdio.h> #include <htc.h>   #define TIMER_INTERVAL (0xffff – 20000) // TMRモジュールのカウント初期値 // 8MHz, 1/1プリスケーラで、10msecごとに…


続きを読む

[C#]文字列中の制御文字を、[CR][LF]や[0D][0A]のように可視化する

2012年10月2日 (カテゴリ: C#:, , )

Stringオブジェクトの文字列中に制御文字(0x00~0x19)が入ると、TextBoxなどに値を表示する際、制御文字が入っている事を確認する事が出来ません。 このような場合、制御文字を他のテキスト文字に置き換えると分かりやすいです。 という訳で今回は、制御文字を可視化(例えば0x02を[STX]に置き換えるなど)させるコードを紹介します。 変換作業は、正規表現による置換機能を利用します。正規表現を使って制御文字をマッチさせたいのですが、幸いな事に.Netでは、制御文字は「\p{Cc}」というパターンであらわす事が可能です。 「\p{Cc}」って何???と思われるかもしれませんが、分解して考…


続きを読む

[C#]各種データ型と16進数文字列の変換方法

2012年10月2日 (カテゴリ: C#:, , )

byteの配列に入った値を16進文字列に変換する byte[] inData = { 0x01, 0x02, 0x88 }; string outStr = BitConverter.ToString( inData ); // 01-02-88byte[] inData = { 0x01, 0x02, 0x88 }; string outStr = BitConverter.ToString( inData ); // 01-02-88 16進文字列をbyteに変換する byte outByte = Convert.ToByte( …


続きを読む

[C#]ComboBoxのSelectedIndexをオブジェクト指定でセットする。

2012年10月1日 (カテゴリ: C#:)

ComboBoxでどの項目が選択されているかを,コードから指定(変更)したい場合があります。 このような場合、SelectedIndexプロパティをセットする事で目的を達成できるのですが、Index番号では無くItemsに登録されたオブジェクトで指定を行いたい場合も有ります。 このような場合は、以下のようにSelectedItemを使用すればOKです。 // フロー制御の選択肢を追加 cmbHandshake.Items.Add( System.IO.Ports.Handshake.None ); cmbHandshake.Items.Add( System.IO.Po…


続きを読む

[Win7] WSHから電源オプションの設定を変える

2012年9月29日 (カテゴリ: プログラム:)

前回はコマンドラインプログラムであるpowercfg.exeを使用して、電源プランを変更しました。 今回はVBScriptを使用して、WSHから電源プランの列挙・変更を行ってみます。 Set objWMIService = GetObject("WinMgmts:\\.\root\cimv2\power")   Set PowerPlans = objWMIService.InstancesOf("Win32_PowerPlan")   ;——————————- ;全ての電源プランを列挙する ;…


続きを読む

[C#]DirectInputでジョイスティック(ゲームパッド)を使用する

2012年9月29日 (カテゴリ: C#:)

Windowsにはゲーム用のコントローラとしてジョイスティック(ゲームパッドとも呼ばれます)を使用することが出来ます。 ジョイスティックを使用することでPCに不慣れな人でも、直感的な操作で入力を行う事が可能です。ジョイスティックを制御するプログラムを書くにはDirectXを使用することが多いのですが、残念ながらC#(というか.Net Framework)を使用したジョイスティック制御プログラムの情報は少ないです。 そこで今回は、VisualStudio 2010で、C#からDirectXのDirectInputの機能を使用して、ジョイスティックを利用できるようにします。 開発環境 確認に使用し…


続きを読む

DirectX SDKインストール時に”S1023エラー”が出る時の対処法

2012年9月29日 (カテゴリ: C#:, )

DirectXのSDKをインストールしようとすると、「S1023エラー」が出る場合があります。 セットアップが失敗しました。 再配布可能なパッケージのインストール中にエラーが発生しました。 開いているすべてのプログラムを閉じて、セットアップをもう一度実行してください。 それでも問題が解決しなければ、DirectX開発者サポートにお問い合わせ下さい。セットアップが失敗しました。 再配布可能なパッケージのインストール中にエラーが発生しました。 開いているすべてのプログラムを閉じて、セットアップをもう一度実行してください。 それでも問題が解決しなければ、DirectX開発者サポートにお問い合わせ下さ…


続きを読む

Amazonマーケットプレースの出品情報を抽出する(GreaseMonkey使用)

2012年9月24日 (カテゴリ: JavaScript:, , )

Amazonには、マーケットプレース(通称マケプレ)という中古の商品を購入出来るシステムがあります。マーケットプレースを使用すると欲しい商品を安価で手に入れることが出来るので、非常にお得です。 ですが、マーケットプレースの出品者一覧ページが非常に見づらく不便です。 出品者情報は、価格が安い順に1ページ当たり15件の情報が表示されるのですが、例えばある商品の出品一覧ページを見てみると、こんなに長くなっています。 個人的には、古本なんてそこそこの品質のものが安く手に入ればよいだけなので、この情報量は親切を通り越して却って分かり辛くなっています。 というわけで、今回はマケプレの出品者一覧を加工して見…


続きを読む

javascriptで&nbsp;の空白がマッチしない

2012年9月23日 (カテゴリ: JavaScript:)

htmlで、文字中で改行させて欲しくないスペースとして&nbsp;というものがあります。 このnbspは文字コードだと160になります。 という事は16進だと0xA0,二進数だと”1010 0000″です。 一方普通のスペースは,0x20です。 両者の二進数表記を比べると最上位ビットが違うだけという事が分かります。 二進表記 内容 ———- ————- 10100000 nbsp 00100000 普通のスペース二進表記 内容 ———- ————- 10100000 nbsp 00100000 普通のスペース また…


続きを読む

[JavaScript]VBのInStr()相当の処理を,JavaScriptで使用するには?

2012年9月23日 (カテゴリ: JavaScript:)

VBでは、文字列中に指定した文字があるかを調べる関数として、InStr()というものが有ります。 JavaScriptで同等の処理を行いたい場合は、indexOf()メソッドを使用します。 object.indexOf( string keyStr );object.indexOf( string keyStr ); 例えば、以下のコードではiに2が入ります。 var data = ‘testdata’; var i = data.indexOf( ‘st’ ); console.log( i );var data = ‘testdata’; var i = d…


続きを読む