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

[Java]ソケットからデータを受信(その2:タイムアウト処理付き)

2012年4月18日 (カテゴリ: Java:)

Javaでソケットからのデータ受信、その2です。 前回とほぼ同じ処理ですが、クライアントからの接続、および接続後のデータ受信でタイムアウト処理を設けて有ります。接続待ちでは3秒、データ受信は2秒以内にクライアントからの操作が行われないと、タイムアウトが発生したとみなしています。 基礎からわかるTCP/IP Javaネットワークプログラミング package com.nanoappli.test;   import java.io.*; import java.net.*; import java.util.Arrays;   public class HelloWorld2…


続きを読む

[Java]ソケットからデータを受信する

2012年4月18日 (カテゴリ: Java:)

Javaでソケットからデータを受信するサンプルです。 プログラムを起動すると、ポート4949で待ち受けを行います。 クライアントから接続後、データを10byte受信すると、受信データを画面表示します。 また、受信データはsjis(厳密にはcp932)が来る事を想定しています。 package com.nanoappli.test;   import java.io.*; import java.net.*; import java.util.Arrays;   public class HelloWorld { public static void main&#4…


続きを読む

[C#]WebBrowserで,指定されたalt属性を持つタグを自動クリックする

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

WebBrowserコントロールを使用して特定のページを表示した後に、特定の画像をクリックした事にするコードです。 サイトによっては、imgタグを使用して、画像をボタン代わりに使っているので、そのような場合に便利です。 private bool clickTagByAltStartsWith( string tagName, string keyString ) { HtmlElementCollection tagList; IHTMLElement targetTag = null; // 検索対象のタグ(Microsoft HTML Object Library…


続きを読む

[Crystal Reports]印刷時の余白(マージン)を変更させる

2012年4月13日 (カテゴリ: C#:)

Crystal Reportsで、印刷時に用紙の余白(マージン)を設定する方法です。 int marginLeft = 10; // 左マージンを10mmでセット   CrystalDecisions.Shared.PageMargins margin = cryReport.PrintOptions.PageMargins; margin.leftMargin = mmToTwip( marginLeft ); // mmの指定をtwip単位に変換する margin.topMargin = 0; margin.bottomMargin = 0; margin.rig…


続きを読む

[CrystalReports]プリンタのキューに、指定した帳票タイトルを表示させる

2012年4月13日 (カテゴリ: C#:)

Crystal Reportsを使用して帳票印刷時、プリンタのキューに表示されるドキュメント名(タイトル)を指定する方法です。 VS2010に付属のCrystal Reportsでは、SummaryInfoプロパティが持っているReportTitleに値をセットすれば設定可能です。 // 帳票のタイトルをセット cryReport.SummaryInfo.ReportTitle = "ピッキングリスト";   // プリンタに印刷 cryReport.PrintToPrinter( 0, false, 0, 0 );// 帳票のタイトルをセット c…


続きを読む

jQuery sparklineの簡単なサンプル4つ

2012年4月13日 (カテゴリ: JavaScript:)

jQueryのプラグインである”jQuery sparkline”を使用すると、webページ内に小さなグラフを埋め込む事ができます。 基本形 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script type="text/javascript" src="http://omnipotent.ne…


続きを読む

[C#]Form.AcceptButtonを指定すると、複数行TextBoxで改行できない。

2012年4月11日 (カテゴリ: C#:)

Form.AcceptButtonで、OK時のボタンを指定すると、MultiLine=trueに設定されている複数行のTextBoxでEnterキーを入力しても改行することができません。 これは、TextBoxの改行処理が入る前に、Form側でキー入力が横取りされてしまうためです。 この問題を回避するには、TextBox.AcceptsReturnをtrueにします。 また、余談ですがAcceptsTab=trueにしておくとTAB文字を入力する事ができます。


続きを読む

C#で、住所から緯度・経度を検索する(geocoding.jp利用)

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

住所から簡単に緯度・経度を検索してくれるWebAPIを、geocoding.jpが提供してくれているらしいので、これを利用したWindowsのアプリを作成してみました。 プログラムは、本記事の最後にあるDownloadから取得可能です。 データ取得の処理 まずは、画面構成です。 検索するだけなので、検索キーワード、検索ボタンと結果の3つだけがあるシンプルな構成です。 プログラムは、検索ボタンクリック時のハンドラだけです。 APIがシンプルなので、処理も簡単に記述する事ができます。 //*******************************************************…


続きを読む

[CrystalReports]積算合計フィールドで,集計のタイプに”合計”が出ない場合

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

CrystalReportsで、合計値を印字しようとして積算合計フィールドを作成した際、集計のタイプに”合計”が出ない場合は、該当の列が数値型になっていない(String等になっているとダメ)。 で、該当の列をStringからInt32に変更した上で”データベースの照合”を行っても、列名が同じでデータ型だけ変更した場合は、定義が変更されたという事をrptファイルのデザイナが認識してくれないみたい。 このような場合は、一旦列名を他のものに変えてから、元に戻すと正しく認識してくれるようです。


続きを読む

CrystalReportsでデータセットを指定後、データセット定義が変更時のrpt更新方法

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

VisualStudioでCrystalReportsを使用する場合、プログラム側から帳票側へ印字情報を渡すにはDataSetを使用します。 どのDataSetを使用するかは、帳票レイアウトファイルであるrptを作成する際に指定します。 通常だとこれで問題ないのですが、一旦rptファイル作成した後で,DataSetに対して列の追加や削除などが行われ定義が変わった場合はどうなるでしょうか? 気になったので試してみました。 まずは、追加前の状態です。DataSetの内容が、rptのデータベースフィールドに表示されています。 [DataSetの定義] [*.rptファイル] この状態でDataSet…


続きを読む

[VS2010]プロジェクトのフォルダに、*.sln.docstates.suoファイルが作成される。

2012年4月6日 (カテゴリ: JavaScript:)

プロジェクトが入っているフォルダをふと見たら、docstates.suoという拡張子のファイルが存在していました。 気になったので調べてみたところ、VisualStudioのプラグインの「Productivity Power Tools」をインストールしていると作成される設定ファイルでした。エディタで開いてみた感じでは、どのタブ(ファイル)をピン止めしているかなどの情報を管理しているっぽいです… このファイルは*.suoファイルと同じくユーザ毎の環境を管理しているファイルなので、gitやSubversionなどのバージョン管理ソフトを使用している場合は、管理下に含める必要ありません…


続きを読む

[log4net]警告”log4net.Config.DOMConfiguratorAttribute は古い形式です”が表示される場合にすべき事

2012年4月6日 (カテゴリ: C#:, )

VisualStudioでlog4netを使用すると、以下の警告が表示される場合があります。 警告 1 ‘log4net.Config.DOMConfiguratorAttribute’ は古い形式です: ‘Use XmlConfiguratorAttribute instead of DOMConfiguratorAttribute’警告 1 ‘log4net.Config.DOMConfiguratorAttribute’ は古い形式です: ‘Use XmlConfiguratorAttribute instead of DOMConfiguratorAttribute’ この場合の対処法…


続きを読む

[C#]ArgumentExceptionで、”DataSource のプロパティまたは列 xxxx にバインドできません。”エラーが出る場合

2012年4月6日 (カテゴリ: C#:)

プログラムの実行時、ArgumentExceptionの例外が発生し、”DataSource のプロパティまたは列 xxxx にバインドできません。”というメッセージが出力される場合があります。 System.ArgumentException はハンドルされませんでした。 Message=DataSource のプロパティまたは列 xxxx にバインドできません。 パラメーター名: dataMember Source=System.Windows.Forms ParamName=dataMember StackTrace: 場所 System.Windows.Form…


続きを読む

[log4net]PatternLayoutのConversionPatternで指定可能なパラメータ一覧

2012年4月6日 (カテゴリ: C#:)

log4netでログを出力する際、layout type=”log4net.Layout.PatternLayout”の、ConversionPatternで指定可能なパラメータの種類と意味の一覧です。 元ネタはこちら> http://logging.apache.org/log4net/release/sdk/log4net.Layout.PatternLayout.html パターン名 内容 a appdomainが指定されたのと同じ意味です。 appdomain AppDomainを、どこでログ出力されたかを分かりやすい形で出力します。 aspnet-cache …


続きを読む

[C#].NETFramework,Version=v4.0.AssemblyAttributes.csでコンパイルエラーが発生する。

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

問題の内容 VisualStudioでコンパイル時、”.NETFramework,Version=v4.0.AssemblyAttributes.cs”ファイルでエラーが発生する場合があります。 上記ファイルが存在する場所は、プロジェクトがあるフォルダではなくtempの下になっています。 このファイルは、VisualStudioが自動生成するファイルで、正しく生成されていれば、以下のような内容になります。 // <autogenerated /> using System; using System.Reflection; [assembly: global…


続きを読む

C#で開発を行う際に守るべき18のルール

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

StackOverFlowで紹介されていたC#で開発を行う際に守るべき18のルールが紹介されていました。 内容が興味深かったので紹介します。 元ネタは、http://stackoverflow.com/questions/2787035/coding-guidelines-best-practicesです。 日本語に訳していますが、意味いまいちな場合は原文を当たった方が分かりやすいかも… 1.FxCopを使用して、ソースの静的チェックを行う FxCopとは、Framework Copの略で(Cop=警察です)、Microsoftから提供されているツールです。 コンパイル後のバイナリ…


続きを読む

[C#]演算子オーバーロードを使用して、オブジェクトの条件分岐をシンプルに記述する

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

あるクラスのオブジェクトの状態をチェックしたい場合、比較式をクラスのメソッドとして実装して確認する事が有ります。 class Score { public int value; public Score( int i ) { value = i; }   public bool isValid() { // 値が0~100のときのみ有効とみなす if ( value >= 0 && value <= 100 ) { return true; } fa…


続きを読む

[C#]Stringとstringの違いは?

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

C#で文字列を格納する変数を定義する場合、Stringとstringの2つが有ります。(先頭が大文字か小文字かが違っています) 以下の例では、どちらもエラーなくコンパイル&実行可能ですがこの2つは何が違っているのでしょうか? String var1; string var2;String var1; string var2; C#の言語仕様上、stringはSystem.Stringのエイリアス(別名)という位置づけなので、仕様的には両者は全く同じです。 ですので、どっちを使っても問題無く動作するのですが、一般的には以下のガイドラインに沿ってコーディング規約が作られる事が多いです。 1.文字列…


続きを読む

[C#]誕生日より年齢を求める最も簡単な方法

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

C#で誕生日から年齢を求めるシンプルな方法です。 日付計算はDateTimeクラスに任せるのが一番簡単です。 DateTimeだと、うるう年周りの処理もやってくれるので安心です。 また、誕生日を過ぎているかどうかで1歳変わるので、その分の判定を最後の行で行っています。 int age; // 年齢   DateTime birthDay = …; // 誕生日を取得 DateTime today = DateTime.Today;   age = today.Year – birthDay.Year; age -= birthDay > today.AddYear…


続きを読む

[C#]enumが持つ全ての値をforeachで取得する

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

以下のコードで、enumの列挙が持つ全ての選択肢をループで取得する事が可能です。 public enum ErrLevel { Debug, Info, Warnig, Error, }   foreach ( ErrLevel level in Enum.GetValues( typeof(ErrLevel) ) ) { …; }public enum ErrLevel { Debug, Info, Warnig, Error, } foreach ( ErrLevel level in E…


続きを読む