カテゴリー
SugiBlog ホームページ制作・システム開発|大阪

VisualC#でMDBにアクセス

Windows7 64bit版のVisual C# 2008を使用してAccessのデータベースに
アクセスするアプリケーションを作っていたら以下のようなエラーに遭遇しました。

「’Microsoft.Jet.OLEDB.4.0′ プロバイダはローカルのコンピュータに登録されていません。」
(InvalidOperationException)

これは64bitのPCで開発することに起因するようです。
ビルドする際に32bit(x86)を対象にする必要があります。
以下、その方法です。

構成マネージャ

[ツール]-[オプション]を開きます。

左側のツリー表示に[プロジェクトおよびソリューション]-[全般]を選択します。
右側にある[ビルド構成の詳細を表示]にチェックを入れます。

※左側のツリー表示に[プロジェクトおよびソリューション]がない場合、
[すべての設定を表示]にチェックを入れます。 続きを読む…»

1,015 views

C# WebBrowserのレンダリングモード

Visual C#にてブラウザを使用したアプリケーションを作成したとき、
WEBページを表示すると表示がおかしいと思って、ユーザーエージェントを確認してみると
IE7となっていました。

環境はWindows7でIE9なのになぜだろう?と思いました。
どうやら作成したアプリケーションではレンダリングモードが「7」で実行されているようです。

解決するにはレジストリを編集し、レンダリングモードを変更してやらないといけません。

ユーザーエージェントのレジストリキー

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION

レンダリングモードのレジストリキー

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_DOCUMENT_COMPATIBLE_MODE

ユーザーエージェント、レンダリングモードをIE9にするには、それぞれのレジストリキーに
ユーザーエージェントは「9000」、レンダリングモードは「90000」という値を設定します。
続きを読む…»

7,842 views

interface, implements, abstract

・interface(インターフェイス)
備えているべき機能(メソッド)の名前
抽象メソッドを定義

・implements(実装)
interfaceで定義された全機能(メソッド)のオーバーライド(Override)で定義が必要

・abstract修飾子
抽象メソッドの定義時に使用
省略可

908 views

登録されているアプリケーションでファイルを実行する

System.Diagnostics.Process.Start("ファイルパス");

自動的に関連付けされているアプリケーションでファイルが開きます。

例)エクスプローラーでフォルダーを開く

System.Diagnostics.Process.Start(@"C:\My Documents");
1,338 views

動画ファイル(.avi)の長さ(総時間)を取得する

Windowsエクスプローラーにてファイルのプロパティの概要タブで確認できる内容を取得する。
AVIやMP3には付加情報(ID3タグ情報)が格納されている。

※この方法は簡易的なものでID3.orgで規定されているフォーマットに沿って読み出すのとは異なり、主要な項目のみ取得するものである。

まず、このプログラムにはShell32.dllを使用します。 続きを読む…»

7,127 views

座標範囲の算出

ある地点から指定した半径以内に該当する座標を絞り込みたいとき、検索に使用する値を得るサンプルです。

考え方としては、指定した半径を基に矩形を作成し、その範囲に含まれる座標を検索する、というものです。
残念ながら“指定した半径を基に作成した円の中に含まれる”ではありません。

通常は2点間の距離を算出し、半径以内に収まるかを出したほうがいいのですが、比較するデータが多い場合は1つ1つ処理しているとかなり負荷がかかります。
そのため、ざっくり検索する方法をご紹介します。

今回はPHPのコードですが、JavaScriptなど他の言語でも利用できます。

まず、算出に必要な度数毎の距離を宣言します。

// 緯度1秒の平均距離 約30.9m
// 緯度35度上の緯度1秒の距離 約30.8m
$lat_length = 30.9;

// 緯度35度上の経度1秒の距離 約25m
$lng_length = 25;

探したい範囲の半径(km)を設定します。 続きを読む…»

1,833 views

要素数の初期化なしに配列を生成(Listクラス)

予め要素数が決まっている場合は始めから配列を使用しますが、
可変の要素数の場合は、Listクラス(コレクション)を使用します。

using System.Collections.Generic;

// 型を指定して宣言
List<int> list = new List<int>();

// Addメソッドで値を追加
list.Add(0);

// ToArrayメソッドで配列化
int[] f = list.ToArray();
1,211 views

C#で設定を使用する

.NET Framework 2.0 では、アプリケーション実行のセッション間で持続する値を作成およびアクセスできます。これらの値は “settings (設定)” と呼ばれます。設定は、ユーザー設定や、アプリケーションで使用する必要のある有効な情報を表します。

たとえば、アプリケーションの配色のユーザー設定を格納する一連の設定を作成する場合があります。または、アプリケーションで使用するデータベースを指定する接続文字列を格納する場合があります。設定を使用すると、アプリケーションにとって重要な情報をコードの外部で持続し、個別のユーザー設定を格納するプロファイルを作成することが可能になります。

既定の設定ファイルはSettings.settingsです。

設定を追加・編集するには、ファイルメニューから[プロジェクト]-[(作成しているプロジェクト名)のプロパティ]を開き、設定を選択するか、ソリューションエクスプローラの[Properties]-[Settings.settings]をダブルクリックで開きます。
続きを読む…»

1,867 views

色々な数値変換

[VB]

CInt(n)
CDbl(n)
CLng(n)

[JavaScript]

Number(n)
parseInt(n)
parseFloat(n)

[C#]

int.Parse(n)
Int16.Parse(n)
Int32.Parse(n)
Convert.ToInt32(n)

long.Parse(n)

float.Parse(n)
Convert.ToSingle(n)

double.Parse(n)
Convert.ToDouble(n)

[PHP]

intval(n)
floatval(n)
1,152 views

コマンドライン引数の取得

Visual C#でコマンドラインからの引数を取得してみましょう。

// 起動時に指定した、実行ファイル名の後ろのオプション(引数)を取得する
for (int N = 1 ; N < Environment.GetCommandLineArgs().Length; N++)
{
    string A = Environment.GetCommandLineArgs()[N] ; // 第N引数の取得
}

// Note: Environment.GetCommandLineArgs().Length は 引数の数 + 1 、
// Environment.GetCommandLineArgs()[0] は 実行ファイル名(パス付き)。
1,413 views