SQLの窓

2009年08月30日


バッチファイルで、FOR に渡すパラメータの妥当性チェックを行う

@echo off

if "%1" == "" (echo コマンド番号を指定して下さい & goto end)
if "%1" == "0" (echo 番号は1以上です & goto end)

call :ErrorCheck %1 %~dp0_list.bat 2> null
if "%ERRORLEVEL%" == "1" (goto end)

for /F "delims= skip=%1" %%i in (%~dp0_list.bat) do (
	%%i
	goto end
)


REM サブルーチン用エリアを作る為の JUMP
goto end


REM ループ処理の事前エラーチェック
:ErrorCheck
call :setErrorLevel 1
for /F "skip=%1" %%i in  (%2) do (call :setErrorLevel 0)
if "%ERRORLEVEL%" == "1" (echo パラメータが不正です)
exit /B

REM errorlevel 設定用
:setErrorLevel
exit /B %1


REM 終了
:end

ERRORLEVEL を判断用に使う為に( 汎用性のため )
setErrorLevel というサブルーチンを作成しています。

FOR のパラメータに不正があると、do を実行しないので、
ERRORLEVEL が設定されたかどうかでエラーを判断します。

FOR が出力する標準エラー出力は直接取得できないので、
サブルーチン化して FOR の出力するエラーメッセージを抑制しています

関連する記事
バッチファイルで、ファイルの中の行を指定してその行の文字列を実行する


posted by lightbox at 2009-08-30 21:31 | コマンド : バッチファイル | このブログの読者になる | 更新情報をチェックする

バッチファイルで、ファイルの中の行を指定してその行の文字列を実行する

listexec.bat
@echo off

if "%1" == "" (echo コマンド番号を指定して下さい & goto end)
if "%1" == "0" (echo 番号は1以上です & goto end)

for /F "delims= skip=%1" %%i in (%~dp0_list.bat) do (
	%%i
	goto end
)

echo リストの最大値を超えています

:end

_list.bat
@echo off
dir "C:\user"
dir "C:\Documents and Settings\lightbox\My Documents\My Pictures"
dir "C:\Documents and Settings\lightbox\Local Settings\Temp"
dir "C:\Documents and Settings\lightbox\SendTo"
dir "C:\Documents and Settings\lightbox\Favorites"

listexec.batと_list.bat を同じディレクトリに置いて実行します

例 : listexec 1
例 : listexec 5

listexec や listexec 6 はエラーになります

_list.bat を一連の JOB として考えると、for の中の goto end を削除する事によって、
どこか途中からやりなおす、というような使い方が可能です
( その場合、for から出た後のメッセージを変更する必要があります )


posted by lightbox at 2009-08-30 20:27 | コマンド : バッチファイル | このブログの読者になる | 更新情報をチェックする

Lightbox.js の使用方法と、範囲指定を可能にするアドオン関数と、ボタンで呼び出せるようにするアドオン関数

設置方法
ダウンロードした中の、lightbox.css と lightbox.js を変更する必要があります

これは、ダウンロードページの 「How to Use」で述べられていますが、
同梱の画像への参照を正しくする為です。同梱されたままですと、
相対的な位置が正しく無いと表示されません。常に正しくするには http から始まる
URL で指定する必要があります

lightbox.css
prevlabel.gif
nextlabel.gif
Lightbox_css

lightbox.js
loading.gif
closelabel.gif
Lightbox_js

ですから、ページのヘッダに書くタグも以下のように書く必要があります
( 見やすいように改行をいれていますが、重要なのは URL です )
<link
	rel="stylesheet"
	href="http://lightbox.on.coocan.jp/js/lightbox204/css/lightbox.css"
	type="text/css"
	media="screen"
/>

<script
	src="http://lightbox.on.coocan.jp/js/lightbox204/js/prototype.js"
	type="text/javascript"
></script>
<script
	src="http://lightbox.on.coocan.jp/js/lightbox204/js/scriptaculous.js?load=effects,builder"
	type="text/javascript"
></script>
<script
	src="http://lightbox.on.coocan.jp/js/lightbox204/js/lightbox.js"
	type="text/javascript"
></script>

上記 URL を使ってもらってもかまいません。


以下、実際に説明されている注意書きです。

■ この順序で記述して下さい
■ ページがロードされた後でないと動作しません
■ もし、onload イベントがあってそのせいで動かないと思われる場合は、
  そのイベントの最後でinitLightbox()を実行して下さい

最後に関して、BODY の onload ならば以下のようにして下さいとあります
<body onload="MM_preloadImages(‘/images/menu_on.gif’)…;initLightbox()">

実装方法
これは簡単です。A タグの属性に rel="lightbox[ギャラリー名]" を追加
するだけですが、今回追加仕様的なアドオンを作成しました。
オリジナルのままですと、A タグの一つ一つに指定する必要があるのですが、
範囲指定をできるようにしました。
( ギャラリー名は半角英数にして下さい )

以下の関数を lightbox.js の最後に追加して下さい
( lightbox.on.coocan.jp には実装済みです )
Lightbox.setGallery = function (s){
($A($(s).
getElementsByTagName('a'))).
each(function(Element){Element.setAttribute("rel","lightbox["+s+"]")}); 
}

その後以下のように a タグで並べた画像のリンクを挟んで下さい
<span id=gallery1>
<a href="http://lightbox.cocolog-nifty.com/photos/drawroom2/1248268708270468.png">
<img src="http://lightbox.cocolog-nifty.com/photos/drawroom2/1248268708270468-thumb.png" />
</a>
<a href="http://lightbox.cocolog-nifty.com/photos/drawroom2/1248097047143143.png">
<img src="http://lightbox.cocolog-nifty.com/photos/drawroom2/1248097047143143-thumb.png" />
</a>
<a href="http://lightbox.cocolog-nifty.com/photos/drawroom2/1248012765169597.png">
<img src="http://lightbox.cocolog-nifty.com/photos/drawroom2/1248012765169597-thumb.png" />
</a>
</span>
<script type="text/javascript">Lightbox.setGallery("gallery1")</script>

1230754903685297 12253419214967 1247498424496751_2 1247280326163373
あともう一つ、lightbox.cocolog-nifty に置いている lightbox.js には、ボタンで呼び出す
関数も追加してあります。
例えば、a タグ(要素)に id=img1 を追加して、onClick に、Lightbox.callNativeMouseEvent("img1")
と書くだけです。ボタンだけにしたい場合は、span を非表示にすれば良いでしょう




タグ:prototype.js
posted by lightbox at 2009-08-30 15:36 | 記録 | このブログの読者になる | 更新情報をチェックする

2009年08月29日


コマンドプロンプトから DVD にデータを書き込む 【CreateCD】

フォルダを .iso に変換後CDに書き込むか仮想ドライブとしてマウントする 
という記事を書きましたが、その作者さんが作成されたコマンドプロンプト用の
アプリケーションです。

標準でも、CD への書き込みが可能なのですが、Microsoft の更新プログラム
をインストールすると、DVD にも書き込めるようになります。
これは、Framework から使える API と思われますので何れ詳細は調べる
つもりですが、とりあえずは使う側から。

XP用の更新プログラムはこちら。

もちろん Vista がメインのようです。元々のダウンロードリンクは、
Microsoft のサポートオンラインにあります

この更新ブログラムをインストールする前に実行してみましたが、
見事にエラーになります。プログラム側では、その更新プログラムに
よってインストールされる API があるという前提で作成されているので
すぐ解ります。

ダウンロードして解凍すると、3つのファイルが入っており、全て同じ
ディレクトリに置いて使って下さい。コマンドプロンプト用ですから、
PATH 環境変数に登録されたディレクトリが都合いいです。

>CreateCD3 -r:d -eject Z:\walker\mdata\flv\a*.*
Command-line CD Recording utility for Windows Vista
Version 3.1.3166.19403
Copyright 2006 (C) Alex Feinman


Adding files.
Writing disc.

INITIALIZING HARDWARE
0% done
CALIBRATING POWER
0% done
WRITING DATA
100% done
FINALIZATION
100% done
CreateCD のページはこちらです。

使用方法は、10/09/2007: Build 3.01 というのが DVD バージョンで、
これには、readme が入って無いので、ダウンロードページの Usage か、
CD バージョンの readme を基本仕様として納得して、引数なしで実行
するとパラメータの説明が表示されます

Createcd3

※ readme には、-s という媒体用の スピードオプションが説明されています
( 省略すると、媒体の最高スピードを使うそうです / DVD で使えるかは未確認です )


タグ:DVD
posted by lightbox at 2009-08-29 21:15 | フリーソフト | このブログの読者になる | 更新情報をチェックする

2009年08月28日


SQL Server 2000 以前で可能だった *= を使った外部結合がエラーになる場合の対処

MSDN オンライン : sp_dbcmptlevel

LEFT OUTER JOIN に書き直せとの事ですが
sp_dbcmptlevel で無事動作しました
( 将来この機能も使えなくなる予定らしい )

sa で実行
sp_dbcmptlevel データベース名, 80




タグ:トラブル
posted by lightbox at 2009-08-28 16:59 | SQLExpress | このブログの読者になる | 更新情報をチェックする
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 ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり