SQLの窓

2013年12月30日


VBScript : ini ファイルの値を取得する

cscript.exe ini.vbs "PATH" セクション名 エントリ名
で、値を echo します。バッチファイルを使うならば、同じディレクトリに ini.bat を作成して、
@echo off
cscript.exe //NOLOGO "%~dp0ini.vbs" "%1" %2 %3
とすると、パスの通ったディレクトリに両方置いて、"ini" というコマンドの出来上がりです エラーメッセージは、イベントビュアーの『アプリケーション』に記録されます
' ログ出力用
Set WshShell = WScript.CreateObject("WScript.Shell")

' 使用方法の表示
if Wscript.Arguments.Count = 0 then
	Wscript.Echo "Usage : cscript.exe ini.vbs ""PATH"" section entry"
	Wscript.Echo "例	 : cscript.exe ini.vbs ""c:\php\php.ini"" php error_reporting"
	Wscript.Quit
end if
' ファイルシステムアクセス用
Set Fs = CreateObject( "Scripting.FileSystemObject" )
' 引数の数をチェック( パス セクション エントリ )
if Wscript.Arguments.Count <> 3 then
	' 引数の数が誤っている場合は終了
	WshShell.LogEvent 1, "引数の数が誤っています"
	Wscript.Quit
end if
' ファイルを開く
on error resume next
Set InObj = Fs.OpenTextFile( Wscript.Arguments(0), 1 )
if Err.Number <> 0 then
	' ファイルアクセスエラーの場合は終了
	WshShell.LogEvent 1, Err.Description & ":" & Wscript.Arguments(0)
	Wscript.Quit
end if
on error goto 0

' 検索処理用のフラグ
search = false
' 読込みループ
Do While not InObj.AtEndOfStream
	' 行単位の読込み
	Buffer = InObj.ReadLine
	' 空の行は無視する
	if Trim(Buffer) <> "" then
		' 対象セクションを発見した場合
		if Ucase(Trim(Buffer)) = "[" & Ucase(Wscript.Arguments(1)) & "]" then
			search = true
		else
			' 一度発見した場合は同じセクションは無いのでこちらへ
			' 発見してない場合もこちらに来ますが、search が true なら発見済み
			if search then
				' 次のセクションを発見した場合は、該当するエントリが無い事を示す
				if Left(Trim(Buffer),1) = "[" then
					' 処理を終了する為、ループを終了する
					WshShell.LogEvent 1, "指定されたエントリを発見できませんでした:" & Wscript.Arguments(2)
					Exit Do
				end if
				' 先頭行がセミコロンの場合は、コメントとみなします
				RealLine = Split(Buffer,";")
				' セミコロンがあった場合、RealLine(0) は空です
				Entry = Split(RealLine(0),"=")
				' 通常行の場合、= が見つかればエントリです
				if ( Ubound(Entry) = 1 ) then
					' エントリが検索対象かどうかをチェック
					if Ucase(Trim(Entry(0))) = Ucase(Wscript.Arguments(2)) then
						' 一致した場合のみ値を表示
						Wscript.Echo(Trim(Entry(1)))
						' ファイルを閉じて終了する
						InObj.Close
						Wscript.Quit
					End if
				end if
			end if
		end if
	end if
Loop
' ここは、検索対象が発見できなかった場合の終了です
InObj.Close
if search then
	WshShell.LogEvent 1, "指定されたエントリを発見できませんでした:" & Wscript.Arguments(2)
else
	WshShell.LogEvent 1, "指定されたセクションを発見できませんでした:" & Wscript.Arguments(1)
end if
Wscript.Echo



タグ:VBScript
posted by lightbox at 2013-12-30 05:16 | VBS + オブジェクト | このブログの読者になる | 更新情報をチェックする

2013年12月29日


ブログにストリートビューを簡単に埋め込む

緯度と経度が必要です。角度や向きや位置移動は、実際にストリトービューを操作して取得します。決定したら『設定変更ボタン』で貼り付けコードを取得します。この際、ストリートビューを画像化する URL も取得できます。



ブログ等で使えるストリートビューコードを取得します


タグ:google
posted by lightbox at 2013-12-29 19:57 | WEBサービス | このブログの読者になる | 更新情報をチェックする

2013年12月28日


かな/ローマ字入力を切り替える

簡単変更は、CTRL+SHIFT+カタカナ・ひらがな

正式には、ALT+カタカナ・ひらがな

OSバージョンやIMEバージョンに依存するかもですが、正式文書はこちらです。

Windows 8 での情報

「ローマ字入力」 と 「かな入力」 の切り替え方法( プロパティ設定 )

※ ▲には、『Windows 8 のタッチ キーボードで「かな入力」をする場合の手順が掲載されています。



posted by lightbox at 2013-12-28 09:40 | Windows | このブログの読者になる | 更新情報をチェックする

ペイント(mspaint) の線幅を変えるショートカット


描画確定前の状態で、Ctrl を押しながら + で太くなり、Ctrl を押しながら - で細くなります( + と - はテンキーです )







posted by lightbox at 2013-12-28 09:30 | Windows | このブログの読者になる | 更新情報をチェックする

IME Standard キー操作

IME Standard キー操作一覧 - サポート - Microsoft Office

一覧にされると、かえって解りにくいですが、最近ノートを買ってPCにうとい家族に日本語変換を教えるにあたって、自分が普段使わない機能でも必要がある事が解りました。

▼ 日本語入力可能状態で

カタカナへ変換

無変換キーで、ひらがな、カタカナ(全角)、カタカナ(半角)モードへの切り替え 
F7 または、Ctrl + I で入力中のカタカナ変換

変換中のスペース

Ctrl + Space で半角
Ctrl + Shift + Space で全角

ローマ字入力で一部の記号の取得

、。・ を入力した後、F9 で変換すると ,./ が取得できます

メニューの表示

Ctrl + 変換キー



再変換

日本語を選択して、変換キー。これを使うと文章をローマ字での読みに変換できます。

かな/ローマ字入力を切り替える

Microsoft の文書では、ALT + かな とありますが、この場合は確認のダイアログが表示されます。すぐ切り替えたい場合は Ctrl + Shift + かな です。

                                                            
タグ:IME Windows
posted by lightbox at 2013-12-28 08:56 | Windows | このブログの読者になる | 更新情報をチェックする

送る(SedoTo)フォルダの中にあるファイル

Sendto フォルダは、エクスプローラからファイルやフォルダを選択して右クリックで表示されるメニューの中の『送る』の中です。ここに保存したショートカットがすぐ『送る』で反映されます。

Sendto フォルダは、Windows7 では、エクスプローラのアドレス部分で sendto と入力するだけで移動できるようになっています

▼ Microsoft にある関連情報

[デスクトップ (ショートカットを作成)] コマンドが [送る] メニューに表示されない

これはMicrosoft のドキュメントで、とても古いものですが、その中のファイルが

「デスクトップ (ショートカットを作成).DESKLINK」

という情報は初耳でした。で、あらためて「送る」フォルダの中をコマンドプロンプト
から表示してみると、さらにもっとサイズ 0 の特殊ファイルがある事が解りました。



1) .DeskLink
2) .mydocs
3) .ZFSendToTarget
4) .MAPIMail

まだまだ知らない事って多いです。

ちなみに、「送る」の中のファイルゃフォルダを表示しないようにするには、単純に「隠しファイル」に設定します。ショートカットでは無く、アプリケーションやスクリプトを置く場合に、その関係ファイルを保存するフォルダを使う場合に有効です。



タグ:Windows
posted by lightbox at 2013-12-28 08:33 | Windows | このブログの読者になる | 更新情報をチェックする

2013年12月26日


簡易縦書き変換

縦書きに向かない文字をいくつか違う記号に変換します。
(Yahoo! ニュースを変換してテストしていました。)



一行の文字数
句点で改行を入れる
改行数
改行は自分で入れる
( 縦書き変換後の文字列を貼り付けて、改行を一つ入れると投稿可能になります )


し電  る時り▲ィ前  ると話晦ルモ電
て話そ と間にや|後各 べかが日コ、気
いのの しにく▼チか社 くらつかムK通
る利た てわくおャらに 控、なら、D信
。用め いたなめ|約よ え▼が元イD事
 を、 るりるでフ3れ るおり日|I業
 一場 。配ことォ0ば よめにに・、者
 時合  信とうン分、 うでくかアソ協
 的に  遅がメに間大 アとくけクフ会
 によ  延予|よは晦 ナうなてセト▼
 制っ  が想ルる、日 ウコるのスバT
 限て  発さ▲▼スか ン|こ約はンC
 すは  生れがおマら スルと21クA
 るユ  す、集め|元 し・が時2モ▲
 こ|  るメ中でト日 たメ予間月バ、
 とザ  可|しとフの 。|想は2イN
 も|  能ル、うォ午  ルさ、5ルT
 あの  性もつコン前  ▲れ携日、T
 る携  が約な|や0  をる帯、ウド
 と帯  あ2がルフ時  なこ電大ィコ

http://headlines.yahoo.co.jp/hl?a=20131225-35041886-cnetj-sci


	text = text.replace(/[”“]/g, "●");
	text = text.replace(/[(【[{『《≪]/g, "▼");
	text = text.replace(/[)】]}』》≫]/g, "▲");
	text = text.replace(/「/g, "▼");
	text = text.replace(/」/g, "▲");
	text = text.replace(/…/g, ":");
	text = text.replace(/[ー〜]/g, "|");

関連する記事

Twitter 縦書き intent



posted by lightbox at 2013-12-26 11:34 | JavaScript | このブログの読者になる | 更新情報をチェックする

2013年12月25日


Twitter 縦書き intent

使ってみると効果は一目瞭然ですが、そんなにいいものでもありません。句点で次の行とかにしたほうが、よさそうです。

※ Twitter は文字数に限りがあるので、右側サイドの空白除去処理を行っています。

いろいろやりながら、いくらかオプションが増えました。

(クリックしてもすぐに投稿されずに縦書きがセットされた投稿画面が開きます)
1行目は横書きにする
改行は自分で入れる
URL(省略可)
Web Intents なんで、ボタンをクリックすると正規の投稿ウインドウに移動します。そして、その際に縦書きとして文字がセットされています。


▼ ブラウザのフォントを固定ピッチにすると綺麗に縦書きになります( Chrome なら 2番目の Seirf )

Google Chrome の フォント設定の3番目の Sans Serif フォントを固定ピッチにすると綺麗に縦書きを見る事ができます。



関連する記事

簡易縦書き変換

選択文字列を Twitter の投稿画面に遷移させるブックマークレットの内容の解説

▼ JavaScript のみで書けるので、誰でも設置してカスタマイズできます
<script type="text/javascript">
function tweet_tate() {
	var enc = encodeURIComponent;
	var url = "https://twitter.com/intent/tweet?text=";
	var url2 = document.getElementById("url").value;
	var text = document.getElementById("tweet_tate").value;
	var top = 0;
	if ( document.getElementById("h1").checked ) {
		top = text.split("\n")[0];
		text = text.substr(top.length);
	}
	text = to_zen(text);
	text = text.replace(/ /g, " ");
	text = text.replace(/[”“]/g, "=");
	text = text.replace(/[W]/g, "=");
	text = text.replace(/[(【[{『《≪]/g, "▼");
	text = text.replace(/[)】]}』》≫]/g, "▲");
	text = text.replace(/「/g, "▼");
	text = text.replace(/」/g, "▲");
	text = text.replace(/…/g, ":");
	text = text.replace(/[ー〜−]/g, "|");
	if ( !document.getElementById("nocr").checked ) {
		text = cr_set(text,parseInt(document.getElementById("rnum").value));
	}
	text = tate(text);
	text = text.replace(/[ ]+\n/g, "\n");
	text = text.replace(/[ ]+$/g, "");
	if ( !document.getElementById("h1").checked ) {
		url += enc(text);
	}
	else {
		url += enc(top+"\n\n"+text);
	}

	var width = 550;
	var height = 420;
	var option = "scrollbars=yes,resizable=yes,toolbar=no,location=yes";
	var left = Math.round((screen.width / 2) - (width / 2));
	var top = Math.round((screen.height / 2) - (height / 2));
	option += ',width='+width+',height='+height+',left='+left+',top='+top;
	if ( url2 != '' ) {
		window.open(url+enc("\n\n")+'&url='+enc(url2),'intent',option);
	}
	else {
		window.open(url,'intent',option);
	}
}
function tate(text) {
	var i = 0;
	var j = 0;
	var wk = text;

	var bk = wk.split("\n");

	var len = 0;
	for( i = 0; i < bk.length; i++ ) {
		if ( bk[i].length > len ) {
			len = bk[i].length;
		}
	}

	var sp = "";
	for( i = 0; i < len; i++ ) {
		sp += " ";
	}

	for( i = 0; i < bk.length; i++ ) {
		bk[i] += sp;
		bk[i] = bk[i].substr(0, len);
	}

	var str = ""
	
	for( i = 0; i < len; i++ ) {
		if ( i != 0 ) {
			str += "\n";
		}
		for( j = bk.length-1; j >= 0; j-- ) {
			if ( j == 0 && bk[j].substr(i,1) == ' ' ) {
			}
			else {
				str += bk[j].substr(i,1);
			}
		}
	}
	return str;
}
function to_zen(str) {
	return str.replace(/[\!-\~]/g, function(s) {
		return String.fromCharCode(s.charCodeAt(0) + 0xFEE0);
	});
}
function cr_set(text,ccnt) {
	var str = text;
	str = str.replace(/[\n]/g,"");
	var num = str.length;
	var i,ch,work,cr_cnt;
	var cr_num = ccnt;

	if ( cr_num > 0 ) {
		work = "";
		cr_cnt = 0;
		for( i = 0; i < num; i++ ) {
			ch = str.substr(i,1);
			if ( ((cr_cnt+1) % cr_num) == 0 ) {
				work += ch + "\n";
				cr_cnt = 0;
			}
			else {
				work += ch;
				cr_cnt++;
			}
		}
		if ( work.substr( 0, 1 ) == "\n" ) {
			work = work.replace(/[\n]/,"");
		}
		return work;
	}
}
</script>
<textarea id="tweet_tate" style='width:500px;height:200px;'></textarea>
<br>
<input type="button" value="Twitter 縦書き発言" onclick='tweet_tate();'>(クリックしてもすぐに投稿されずに縦書きがセットされた投稿画面が開きます)
<br>
1行目は横書きにする <input type="checkbox" id="h1" checked>
<br>
一行の文字数 <input type="text" id="rnum" value="10" style='width:40px'>
<br>
改行は自分で入れる <input type="checkbox" id="nocr">
<br>
URL(省略可) <input type="text" id="url" style='width:420px;'>


posted by lightbox at 2013-12-25 00:12 | JavaScript コンテンツ | このブログの読者になる | 更新情報をチェックする

2013年12月24日


IE11 の URL の最大長はあいかわらず 2083 でした。他のブラウザは三万超えているのに・・・

現在は結構な長さが使えるようです。詳細は以下をご覧ください

IE : URLに使用可能な文字数


▼ ( 2013 年当時の実際のお話 )
必要があって、実際に調べてみました( 仕様では無く GET メソッドでデータが保持された結果の長さをカウントしました )

IE は仕様通りなんですが、融通きかないですね。やっと WebGL 動くようになりましたが、こういうところがおろそかです。
IE11 2083
Google Chrome 31.0.1650.63 m  32464
Firefox 26.0 32491
日本語は、パーセントエンコーディングされるので、もっと保持できる量は減ります。(さらに、キャラクタセットの違いによっても差が出る事になります)


posted by lightbox at 2013-12-24 03:07 | IE | このブログの読者になる | 更新情報をチェックする

2013年12月22日


JS : 外部ファイルを使った、ブックマークレットのスケルトン


ブックマークレット => ブックマークレットのテキスト表示
これは、ブラウザのブックマークレットのコードでは処理できない複雑で長い処理を外部に置いて、ブックマークレットはそれを呼び出して実行しています。

以下のテキストを取り出して、全ての NAME をユニークな英数字に変更して、URL を二つ目のソースコードの JavaScript のファイルの URL にします。この JavaScript は、.js にしてどこかのスペースに保存して上記 URLになるようにしておきます

※ JavaScript 内の NAME も前述の文字列と同じにして下さい

完成したら、どこかのページにアンカーごと全て貼って、お気に入りに登録して実行して alert が表示されたら成功です
<a href="javascript:var%20mylib=document.createElement('script');if(!window.NAME){mylib.setAttribute('src','URL');mylib.setAttribute('charset','shift_jis');document.body.appendChild(mylib);(function(){if(window.NAME){NAME.init();}else{setTimeout(arguments.callee);}})();}else{NAME.init();}void(mylib);"
onclick='
	alert("ブックマークバーにドロップか、IEでは右クリックでお気に入りに登録(お気に入りバー)が簡単です"); 
	if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) { 
		event.returnValue = false; 
	} 
	event.preventDefault(); 
	event.stopPropagation();
'
>ブックマークレットのテキスト表示</a>

if (!window.NAME) {
(
function() {
	window.NAME = 
	{
		// プロパティ
		version: 1.01
		,
		// メソッド
		init : function( ) {
			/* ここに処理を書きます */
			alert("この alert はテスト用です");
		}
	};
}
)();
}





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

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

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

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

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


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

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

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

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

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


Windows
container 終わり

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

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
PHP正規表現チェッカー
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり