SQLの窓

2009年06月29日


CLSIDで特殊フォルダを開く


REM マイ コンピュータ
Explorer /e,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}

REM マイ ネットワーク
Explorer /e,::{208D2C60-3AEA-1069-A2D7-08002B30309D}

REM マイ ドキュメント
Explorer /e,::{450D8FBA-AD25-11D0-98A8-0800361B1103}

REM コントロールパネル
Explorer /e,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}

REM ごみ箱
Explorer /e,::{645FF040-5081-101B-9F08-00AA002F954E}

REM プリンタ
Explorer /e,::{2227A280-3AEA-1069-A2DE-08002B30309D}

関連する記事

Explorer.exe コマンドライン


posted by lightbox at 2009-06-29 00:26 | Windows | このブログの読者になる | 更新情報をチェックする

2009年06月25日


"A,B,C" を配列に変換後 "A,B,C" につなぎなおす

一番簡単で有用な VBScript
VB系では、配列が () なのに注意です
str = "A,B,C"
aData = Split(str, ",")

result = ""

For I = 0 To Ubound(aData)
	If result <> "" Then
		result = result & ","
	End If
	result = result & aData(I)

Next

MsgBox( result )
Wscript.Echo result

しかし、VBScript は古めの言語なので、演算子として &= という
ものは使えません( VB.NET は OK )

ですから、以下のPHPはそのへんを忠実に書き換えていますが、
.= という書き方が可能です。
殆ど VBScript と同じですが、配列の数を取得するのに、PHPでは
直感的な count 関数を使用しているのに対して、VBScript では
配列の添え字の上限 を求める UBound 関数を使用します。
<?
$str = "A,B,C";

$aData = explode(",",$str);

$result = "";

for( $i = 0; $i < count($aData); $i++ ) {
	If ( $result != "" ) {
		$result = $result . ",";
	}
	$result = $result . $aData[$i];
}

print $result;

?>
さらに、VB.NET への移行は、VBScript より厳密になるので、
データの定義や型の明示が必要になります。

ここで注目なのは、Split メソッドの引数に文字列が使えてしまう事。
本来は、Char の配列でないといけないのですが、何故か動きます。
","c と同等なのかどうかは解りませんが、VBでの選択肢は結構多いのです
Public Class Form1

	Private Sub Button1_Click(ByVal sender As System.Object, _
	ByVal e As System.EventArgs) Handles Button1.Click

		Dim str As String = "A,B,C"
		Dim aData As String()

		aData = str.Split(",")

		Dim I As Integer
		Dim result As String = ""

		For I = 0 To aData.Length - 1
			If result <> "" Then
				result &= ","
			End If
			result &= aData(I)

		Next

		MessageBox.Show(result)

	End Sub
End Class

C# では、Split メソッドの本来の使い方を実装しています。
というか、これでないとコンパイルは通りませんし。
private void button1_Click(object sender, EventArgs e)
{

	string str = "A,B,C";
	string[] aData = null;

	String delimStr = ",";
	Char[] delimiter = delimStr.ToCharArray();

	aData = str.Split(delimiter);

	int I = 0;
	string result = "";

	for (I = 0; I <= aData.Length - 1; I++)	{
		if (!string.IsNullOrEmpty(result)) {
			result += ",";
		}

		result += aData[I];
	}

	MessageBox.Show(result); 

}

タグ:VBScript VB.NET PHP C#
posted by lightbox at 2009-06-25 17:09 | プログラミング・仕様等 | このブログの読者になる | 更新情報をチェックする

2009年06月23日


WSH : VBScript から JavaScript の呼び出し

.wsf で、SCRIPT タグを使って VBScript と JavaScript を混在させる場合、呼ばれるほうは先に定義される必要があるようです。

つまり、以下はエラーになります。
<JOB>

<SCRIPT language=VBScript>

js()

</SCRIPT>

<SCRIPT language=JScript>

function js() {
	Wscript.Echo( "JS" )
}

</SCRIPT>

</JOB>


しかし、以下は正しく実行されます。逆の場合でも同じでした
<JOB>

<SCRIPT language=JScript>

function js() {
	Wscript.Echo( "JS" )
}

</SCRIPT>

<SCRIPT language=VBScript>

js()

</SCRIPT>

</JOB>


で、結局 encodeURIComponent を実行したかったのです
<JOB>

<SCRIPT language=JScript>

function js(str) {

	return encodeURIComponent( str );

}

</SCRIPT>

<SCRIPT language=VBScript>

MsgBox js("日本語をURLエンコードする")

</SCRIPT>

</JOB>





タグ:レア
posted by lightbox at 2009-06-23 18:06 | VBS + JavaScript | このブログの読者になる | 更新情報をチェックする

2009年06月22日


Oracle : ディレクトリオブジェクト

前提条件
  • 該当ユーザでログインして、select * from USER_SYS_PRIVS で権限があるかを確認
  • 作成には CREATE ANY DIRECTORY 権限が必要
  • 既に権限を持つユーザで作成し、PUBLIC に対して利用権限を与えても良い
  • すべてのディレクトリは 1 つのネームスペースに作成される

権限のあるユーザで以下を実行して、ユーザに作成と削除の権限を与えます。
権限を与えるューザは、通常 SYSTEM で統一すると良いと思います。
権限が付与されたかどうかの確認は、そのユーザでログインして、
select * from USER_SYS_PRIVS を実行します
grant 
	CREATE ANY DIRECTORY 
	,DROP ANY DIRECTORY 
to ユーザ名


作成には、create or replace が使用できます。
ディレクトリオブジェクト名は、全体で重複できないので注意して下さい。
CREATE DIRECTORY ディレクトリオブジェクト名
   AS 'C:\user\php\plsql_builder\oracle'



作成は、SYSTEM で行って、権限のみユーザに与えます。
しかし、これでは SYSTEM ユーザでの作業が多くなるので、
ユーザ毎に作成権限を与えるか、ユーザ名を PUBLIC にします。
GRANT
	READ,WRITE
	ON DIRECTORY
	ディレクトリオブジェクト名 TO ユーザ名




関連する記事

ディレクトリオブジェクトの作成(1)
ディレクトリオブジェクトの作成(2)
ディレクトリオブジェクトの作成(3)

関連するOracleドキュメント

CREATE DIRECTORY



タグ:Oracle
posted by lightbox at 2009-06-22 10:58 | Oracle : 環境 | このブログの読者になる | 更新情報をチェックする

2009年06月19日


コマンドプロンプトからサービス開始

Service_name

コマンドプロンプトからサービスを開始するには、以下のどちらかを使用します
net start サービス名
net start "表示名"

同様に、停止する時は、
net stop サービス名
net stop "表示名"

です。

厳密には、サービス名 が正しいのですが、ツールとして上記のような利用方法に対応しているようです

※ 大文字小文字を区別しないようです
net start Spooler
net start spooler
net start "Print Spooler"
net start "print spooler"


関連する記事

WMIでローカルPCのサービス開始
WMIでリモートPCのサービス開始
ADSI による サービス開始

タグ:サービス
posted by lightbox at 2009-06-19 10:01 | コマンドプロンプト | このブログの読者になる | 更新情報をチェックする

2009年06月14日


SendToディレクトリ内のファイル属性

「送る」は、そこに置いたショートカットゆアプリケーションに
エクスプローラが引数としてファイルのパスを渡してくれるのですが、
ディレクトリを作成すると階層構造が作れ、しかも、ディレクトリや
ファイルの属性を「非表示」にすると、「送る」にも表示されなくなります。

※ 表示する対象は、基本はログインしているユーザのSendTo ディレクトリです。

■ 関連する記事
SendToディレクトリにあるファイルの表示・非表示を設定する
エクスプローラで選択されたファイルをテキスト形式でクリップボードにコピーして利用する
「送る」に入れる簡易ダンプ



タグ:送る
posted by lightbox at 2009-06-14 20:00 | Windows | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり