[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 10/02 12:26 / Filesize : 234 KB / Number-of Response : 984
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

WSH(・∀・)スレッド! Part 2



1 名前:デフォルトの名無しさん [2007/04/16(月) 13:48:54 ]
( ´ゝ`) 誰か詳しい情報キボンヌ

●過去スレ
WSH(・∀・)スレッド!
pc11.2ch.net/test/read.cgi/tech/1055075469/

●関連スレ
お前ら、wsh使ってますか? part6
pc11.2ch.net/test/read.cgi/win/1155040873/
【イケメン】阿龍スレ避難所@自己紹介【彼女募集中!】
life8.2ch.net/test/read.cgi/intro/1171897814/

●個人サイト
Windows Scripting Host Laboratory
www.roy.hi-ho.ne.jp/mutaguchi/wsh/
Windows Script Wiki
winscript.s41.xrea.com/wiki/index.php
音楽
winscript.mine.nu/music/
キャラネタ板・なな板のための何か
charaneta.mine.nu/

684 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 15:31:49 ]
先輩!ありがとうございました!

685 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:29:01 ]
ファイルをドラッグアンドドロップしたらパスを表示するスクリプトが動きません。
どこを直せばよいか教えてください。

var strArgument = new Array();
if ( WScript.Arguments.count() == 0 ) {
WScript.Echo ("コマンドライン引数が指定されていません。");
}
else {
for ( strArgument in WScript.Arguments ) {
WScript.echo ( strArgument[i] );
}
}

686 名前:685 mailto:sage [2008/02/08(金) 21:37:42 ]
スクリプトをダブルクリックした時は正常作動しますが
ファイルをドロップすると何も表示されません。
スクリプトエラーも出ないので困っています。

687 名前:デフォルトの名無しさん [2008/02/08(金) 22:03:46 ]
コマンドライン引数が指定されているからに決まってるだろ

688 名前:デフォルトの名無しさん [2008/02/08(金) 22:04:54 ]
var strArgument = new Array();
if ( WScript.Arguments.count() == 0 ) {
   WScript.Echo ("コマンドライン引数が指定されていません。");
}
else {
   WScript.Echo ("コマンドライン引数が指定されました。");
}


689 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:18:40 ]
for ( strArgument in WScript.Arguments ) {
WScript.echo ( strArgument[i] );
}
これ、なにしてるの?

690 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:42:40 ]
>>688
var strArgument = new Array();
これ、なにしてるの?

691 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:52:48 ]
msdn.microsoft.com/library/ja/default.asp?url=/library/ja/script56/html/wsproarguments.asp

692 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:25:21 ]
>>685
// var strArgument = new Array();
if ( WScript.Arguments.count() == 0 ) {
WScript.Echo ("コマンドライン引数が指定されていません。");
} else {
for (i = 0; i < WScript.Arguments.length; i++ ) {
WScript.echo ( WScript.Arguments(i) );
}
}

.vbsファイルしか作った事がないけど、なんとなく.jsファイルはこれで動くんじゃないかなぁと・・?



693 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:56:38 ]
>>692
> if ( WScript.Arguments.count() == 0 ) {
count はメソッドじゃなくプロパティ。

694 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:10:28 ]
>>693
えー?

695 名前:685 mailto:sage [2008/02/09(土) 00:12:24 ]
>>692
動きました。ありがとうございます。
只今WSHをJScriptで書こうと、vbsのスクリプトを翻訳しながら勉強中です。
でもJSのサンプルコードが少なくて困ってました。
今回は元コードに配列を使っているように見えたので、それらしく書き換えたけど動きませんでした。
なんでここまで違いが出るのか、まだ理解してませんw
↓元のサンプルコード
Option Explicit
Dim strArgument

If WScript.Arguments.Count = 0 Then
WScript.Echo "コマンドライン引数が指定されていません。"
Else
For Each strArgument In WScript.Arguments
WScript.Echo strArgument
Next
End If

696 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:28:24 ]
>>695
実際にはいろいろな書き方ができるので、余計に混乱してるのかも。

元のスクリプトになるべく忠実に対応させるなら、以下のような書き方もできる。

if (WScript.Arguments.length == 0) {
WScript.Echo("コマンドライン引数が指定されていません。");
}
else {
var e = new Enumerator(WScript.Arguments);
for (; !e.atEnd(); e.moveNext()) {
WScript.Echo(e.item());
}
}


697 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:31:07 ]
for (var e = new Enumerator(WScript.Arguments); !e.atEnd(); e.moveNext()) {
すっきり

698 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:41:48 ]
>只今WSHをJScriptで書こうと、vbsのスクリプトを翻訳しながら勉強中です。

なぜ?遅いのに。いろいろ細かいことにうるさいのに。などなど

699 名前:デフォルトの名無しさん [2008/02/09(土) 01:35:29 ]
マイクロソフトの公用言語はBASIC
ゲイツはBASIC長者
java には裁判で負けた恨みが有る

700 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 09:13:38 ]
WSHは使うけど、今はもうVBScriptでは書かないなあ。
JavaScript(JScript)のある意味変態的な言語仕様に慣れてしまったら戻れない。

701 名前:デフォルトの名無しさん [2008/02/09(土) 14:37:22 ]

変態

702 名前:693 mailto:sage [2008/02/09(土) 15:58:20 ]
>>694
> >>693
> えー?
といわれてMSDN見てきた。

msdn.microsoft.com/library/ja/default.asp?url=/library/ja/script56/html/wsobjWshArguments.asp

プロパティとメソッド、両方あるな……。

ふだんはJScriptで length 使うか Enumerator にして扱ってるんで、
確認不足で適当に書いてしまった。スマソ



703 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:38:49 ]
>プロパティとメソッド、両方あるな……。

プロパティを見るとメソッドになってて、メソッドしかないような

704 名前:デフォルトの名無しさん [2008/02/09(土) 17:18:48 ]
動きさえすればどっちでもいいよ

705 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:22:03 ]
with (WScript.Arguments) {
    WScript.Echo(Count());
    WScript.Echo(length);
    WScript.Echo(Count); // エラー
}

706 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 20:48:58 ]
basp21のsocketって非同期通信できませんか?
データ取得できたらコールバック関数を呼びたいんですが。

接続できなかった場合とかタイムアウトになるまで
他の処理ができない



707 名前:685 mailto:sage [2008/02/09(土) 23:10:36 ]
昨日教えてもらったスクリプトを、テキストに出力しようとしたら働きません。
また教えてください。

var objFso = new ActiveXObject("Scripting.FileSystemObject");
var objFile = objFso.OpenTextFile("testdirlist.txt", 8, true);
var path String();
objArgs = WScript.Arguments;
for (i = 0; i < objArgs.length; i++)
{
path = path + objArgs(i) + "\n";
}
//WScript.Echo(path);//←働く
objFile.WriteLine(path);//←働かない
objFile.Close();

708 名前:685 mailto:sage [2008/02/09(土) 23:13:59 ]
×var path String();
○var path = String();

709 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:46:55 ]
絶対パスにすれば

710 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 00:18:19 ]
var path = "";


711 名前:685 mailto:sage [2008/02/10(日) 00:30:39 ]
>>709
動きました!

712 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 12:28:54 ]
WSH 5.1(Win2k)環境でカレントディレクトリを変更したいのですが
Set foo = WScript.CreateObject("WScript.Shell")
foo.CurrentDirectory =
と言った.CurrentDirectoryプロパティはWSH 5.6(WinXP)以降の環境でしか動作しません。
もちろんWin2kのWSHをバージョンアップすれば動くのですが、それは手間がかかる為
やらずに解決したいと思っています。

やりたい事は、WSHスクリプトファイル(仮にhoge.vbs)と同じ階層に scriptと言うフォルダがあり、
そのフォルダの中に var.bat と言うファイルがあるとして

Set objShell = WScript.CreateObject("WScript.Shell")
Set fs = WScript.CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(".")
objShell.Run f.path & "\script\var.bat"
等として、他のフォルダ内の実行ファイルを実行したいのです。
しかし実際にコレをやると、指定されたファイルが見つかりません とエラーが表示されて実行できません。
確かにファイルは存在しますし、WScript.Echo f.path & "\script\var.bat" とかやってパスを確認しても
正しいパスです。

なので、カレントディレクトリを実行ファイルのある場所に移動しないと実行できないのかなと
考え、CurrentDirectoryを変更する方法を考えているのですが・・・
普通に考えてCurrentDirectoryを変更せずとも実行できるはずですよねぇ・・アドバイス頂けませんか?



713 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 12:37:49 ]
パスをだぶるくぉーてーしょんで囲みなさい

714 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 14:26:29 ]
>>713
レスありがとうございます。

strDrv = strCurrent & "driver\install.bat"
↑これで、カレントディレクトリ\driver\install.bat がstrDrv に入ります。
その後
objWshShell.Run strDrv
で、今までは出来ませんでした。なのでこれを" " で囲みます
objWshShell.Run "strDrv"
しかしこうすると、strDrvと言う文字列を起動しようとしてしまい、strDrvが変数として扱われず
単なる文字列として扱われるため動作しません。
objWshShell.Run ""strDrv""
として、"をエスケープしてみてもだめ〜 とか考えてたら

strDrv = strCurrent & "driver\install.bat"
strDrv = """" & strDrv & """"
WScript.Echo strDrv
objWshShell.Run strDrv
これでいけました。最初の"が文字列の開始、 中2つの"が 文字列としての純粋な"を表し
(""で"を単なる文字列としてエスケープ)、最後の"が文字列の終了を表すダブルクォート・・・
結局 """" となり、非常に分かりにくいというか、混乱する形になったのですが、こんなもんなんでしょうか?

715 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 14:47:54 ]
こんなもんです

716 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 16:13:45 ]
>>714
Python がお勧め

717 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 16:15:22 ]
strDrv = Chr(18) & strDrv & Chr(18)

718 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 17:42:26 ]
>Set f = fs.GetFolder(".")
>objShell.Run f.path & "\script\var.bat"

objShell.Run ".\script\var.bat"


719 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 18:10:32 ]
>>716
>>712

720 名前:デフォルトの名無しさん [2008/02/11(月) 23:38:48 ]
>>714
C言語やjavaだって "\"" みたいな、「たいへん分かりにくい混乱する表記」
になるから、こんなもんです。

もし、コードをスッキリさせたかったら、

Const QQ = """"
strDrv = QQ & strDrv & QQ

もしくは

strDrv = Q( strDrv )

Function Q(ByVal str)
  Return """" & str &""""
End Function

みたいな方法がありますよ。(自分は後者をよくつかう)

721 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:25:32 ]
Chr(34)は?

722 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 07:40:18 ]
"自分は後者をよくつかう"って、使えるの、それ?



723 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:41:25 ]
うん

724 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:56:37 ]
>みたいな

コードはイメージです

725 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 20:18:12 ]
>>724
実際のコードとは異なる場合があります。

726 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 20:24:57 ]
>>722
使えない

727 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:32:48 ]
使わない

728 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:43:08 ]
使われない

729 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 00:07:38 ]
こんばんです。1つ質問させてください。

vbsでプログラムを組んでいるのですが、vbs親プログラムからvbs子プログラムを
起動は出来ないのでしょうか?
〜〜〜〜〜vbs親プログラム内〜〜〜〜〜〜〜〜〜
Set objWshShell = WScript.CreateObject("WScript.Shell")
strCmdLine = "sub_program.vbs str01 str02 "
objWshShell.Exec(strCmdLine)

この記述で「sub_program.vbs」を引数2つ与えて起動できると思うのですが出来ません。
尚、コマンドプロンプトで[sub_program.vbs str01 str02]実行すると正常に起動します
修正点がありましたらお教えいただけないでしょうか。

730 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 00:16:04 ]
>>729
strCmdLine = "cscript sub_program.vbs str01 str02 "
または
strCmdLine = "wscript sub_program.vbs str01 str02 "
と記述する必要がある。

コマンドプロンプトでは、"たまたま" cscriptまたはwscriptが省略できる。




731 名前:729 mailto:sage [2008/02/13(水) 00:23:32 ]
>>730
ありがとうございました。無事起動すること出来ました。
コマンドプロンプトでは"たまたま"省略可能なんですか・・・

732 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 07:49:15 ]
という事はExplorerでアイコンをダブルクリックすれば起動するのも"たまたま"だね。



733 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 08:13:26 ]
//H:でたまたまを切り替えられる。

734 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 09:19:40 ]
どう考えても>>721が正解


735 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 16:36:06 ]
たまたまだけど、これもできる
strCmdLine = "sub_program.vbs str01 str02 "
objWshShell.Run(strCmdLine)


736 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 21:57:32 ]
>>735
おまえ、何も解ってないな

737 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 00:12:08 ]
そうだな、解るように言ってやれ

738 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 21:53:59 ]
var fso= WScript.CreateObject("Scripting.FileSystemObject");
var d = fso.GetDrive(fso.GetDriveName("Q:\\"));
if(d.IsReady){ ...

とやってDVD-ROMドライブが準備できているかどうか調べているのですが、
DVDを入れて認識している最中にIsReadyが実行されるとウィンドウズ自体が数秒止まってしまいます
バックグラウンドで動かしていてもフォアグラウンドアプリまで停止してしまうので困っているのですが
これを回避するにはどうしたらいいのでしょうか?

739 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 22:14:09 ]
FSOで問題あるときはShell.Applicationを使ってみるのが定石

740 名前:デフォルトの名無しさん [2008/02/16(土) 06:37:35 ]
ドアラ グッドウィルドームに立つ!
再生:654,421 | コメント:123,256 | マイリスト:20,510
www.nicovideo.jp/watch/sm354359

凄い勢いで踊るドアラ
再生:482,525 | コメント:28,129 | マイリスト:17,837
www.nicovideo.jp/watch/sm1489303

ドアラが異端になった経緯
再生:424,284 | コメント:36,521 | マイリスト:9,417
www.nicovideo.jp/watch/sm378355

ドアラーズブートキャンプ
再生:241,338 | コメント:18,996 | マイリスト:7,229
www.nicovideo.jp/watch/sm409082

741 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:36:40 ]
>>738
ドライブ認識動作中にエクスプローラとかでドライブにアクセスしても凍るから
アクセスするタイミング悪いと凍るのは仕様じゃね?

>>739
Shell.ApplicationにIsReadyはないけどな

742 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 17:20:40 ]
Shell.Applicationで取れる情報で変化するものを見つければ?



743 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 16:30:09 ]
Sub プロシージャとFunction プロシージャの違いって
Function プロシージャが戻り値を返すのに対してSub プロシージャが値を返さないって言うだけですか?

744 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 16:51:11 ]
End XXX
Exit XXX
がちがう

745 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 19:34:19 ]
>>744
End Sub
End Function
が違うって言うのは分かりますし、Functionの場合のみ Function名 = 値 で値を返す事が出来る
のも分かりますが(Javaで言うコンストラクタに値代入したらreturn文みたいな振る舞いすんのな)

Exit Sub Exit Function というのがあるのですか?それはいったいどういう・・・?
単に終わらせるだけですか? 呼び出し元に戻りますか?

746 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 21:25:12 ]
Javaなんかのreturnみたいにプロシージャの呼出元へ戻るだけ。

747 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 21:50:22 ]
>>745
ヘルプも見れないのか

748 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 22:10:48 ]
WSH(拡張子.vbsのファイル)で
カレンダを表示するプログラムを作成しました。

出力はMsgBoxでしてます。
こんなかんじ
MsgBox strResult, , "カレンダ"

これを、携帯電話からも実行できるようにしたいと考えました。
携帯のカレンダがあるじゃないかと言われると困るのですが・・・
便宜上カレンダと言っているだけで、実際は他の物を出力するので。
イメージ的にはカレンダというと一番伝わりやすいので・・・。

で、そのアイディアとして、サイト上に掲載すればいいと考えました。
携帯のブラウザからそのサイトにアクセスした際に.vbsで作ったのと同じような出力が
得られれば良いのですが、これを実現するのに簡単な方法は無いでしょうか?
今のところ私に考え付くのは JavaScriptを勉強してJavaScriptに書き直して
やるぐらいかなぁと思っているのですが、そんな事しないとやっぱ出来ませんか?
そうなると関数とか文法とかいろいろ勝手が違うでしょうから覚え直しですかね?・・。
.vbsファイルの出力のWeb版を作りたいみたいな感じです。よろしくお願いします。

749 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 22:16:13 ]
携帯もまだJavaScriptは実行できないぞ。

ASPと言って、Windowsサーバ上でVBScriptやJScriptをCGIのように実行する環境があった。
お前が欲しいのはきっとそれに違いない。

問題は、世間がASP.NETへ移行しつつあるということ。
ASP.NETはC#とかVB.NETとかを使うまた別物。

750 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 23:00:35 ]
>>749
.vbsファイルを携帯に渡しても実行できるわけないし、じゃあ現状だと携帯でコレを実現
するのは難しいんでしょうか?

仮に携帯で実現するのが難しいとして、ブラウザに実装・・と言うか
第三者がWebブラウザでアクセスしてきた時に表示するようなのは
JavaScriptになりますかね?

751 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 23:01:39 ]
すれ違い
よそへいけ

752 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 23:02:43 ]
それって、なんか実行時に入力するパラメータあるんかな?
ないんならタスクマネージャで定期的に実行して、
TXTかHTMLに出力したのをサーバに自動アップするような環境をつくって、
携帯でそれを見に行けばいいような気がするが。



753 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 23:12:23 ]
>>752
おお!なんか凄いアイディア聴けた!
えっとですね、1日に1回更新されるので、1日に1回実行してやればいいですね。
後はそれをTXT・・・には出来るのかなぁ・・・ ああ、そうか MsgBoxじゃなくてFileに出力
してやればいいんだ・・・ ああ、HTMLからそのTXTにリンクを貼るってのもありだし、
HTMLの中にそのTXTの内容を直接埋め込むのもありか!凄い!なるほど!
ちょっと試行錯誤してみます。ありがとうございましたっ!

754 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 23:27:45 ]
>>752
ありがとうございました!

Dim objFso, txtFile
Set objFso = WScript.CreateObject("Scripting.FileSystemObject")
Set txtFile = objFso.OpenTextFile("hogehoge.txt", 2, True)
txtFile.Write strResult
txtFile.Close
Set txtFile = Nothing
Set objFso = Nothing

こんなコードで生成できました!後はこの.txtファイルにHTMLでリンク貼れば完璧!
本当にお世話になりました〜

755 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 23:57:23 ]
>>753-754
ただのテキストを吐き出すついでにHTMLにすればいいんじゃないの?

756 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 00:29:27 ]
>>755
いやーそれが、やろうと思ったのですが、出来なくて・・・。
やろうと思ったらかなり大変だと思いますが、簡単に出来るもんでしょうか?

757 名前:756 mailto:sage [2008/02/20(水) 00:30:22 ]
Replace strOutStrings, vbCrLf, "<br>"
とかやって、改行を<br>に置き換えようとかやってみたんですが、うまくいきませんでした。

758 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 00:47:19 ]
>>756
With txtFile
    .Write "<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.01 Transitional//EN"" ""www.w3.org/TR/html4/loose.dtd"">"
    .Write "<html lang=""ja"">"

...

End With
こんな感じで書き出せばいいだけだろ。

>>757
そのテキストをpre要素の中に入れてしまうというのはどうだ?

759 名前:デフォルトの名無しさん [2008/02/20(水) 00:47:33 ]
Dim objFso, txtFile
Set objFso = WScript.CreateObject("Scripting.FileSystemObject")
Set txtFile = objFso.OpenTextFile("hogehoge.htm", 2, True)
txtFile.Write "<HEAD><TITLE>うんこやろ〜</HEAD></HEAD>"
txtFile.Write "<BODY>"
txtFile.Write "<CENTER>なんか文句あっか!</CENTER>"
txtFile.Write "</BODY>"
txtFile.Close
Set txtFile = Nothing
Set objFso = Nothing

760 名前:デフォルトの名無しさん [2008/02/20(水) 00:51:57 ]
そういえばむかし、こんなんやってたな。

10 OPEN "INDEX.HTM" FOR OUTPUT AS #1
20 PRINT #1,"<HEAD><TITLE>ハナクソ</TITLE></HEAD>"
30 PRINT #1,"<BODY>"
40 PRINT #1,"<CENTER>うんこちんちん!</CENTER>"
70 PRINT #1,"</BODY>"
90 CLOSE #1
100 SYSTEM

これを N88BASIC.EXE /T:RUN"HOGE.BAS" で定期的に動かして
コンテンツを更新してた。
古きよき時代。

761 名前:756 mailto:sage [2008/02/20(水) 16:22:22 ]
>>758
それやろうとしたんですが、HTMLファイル中の" を ""と置き換えないといけないのが面倒でした。
HTMLって意外と"を使いますし。
それに.txtファイルに出力してしまって HTMLからリンクを貼るだけの方がとても楽だったので・・。

それにしてもWithステートメントかぁ、ヘルプを見て初めて知りましたが、こんな便利なのが
あったんですね。今までだったら txtFile. を何度も書かないといけなかったのに、これを知った
おかげで完全修飾しなくてすむからもっとコードが楽にスッキリかけそうです。ありがとうございます。

>そのテキストをpre要素の中に入れてしまうというのはどうだ?
これもまた素晴らしいアイディアだと思います。考え付きませんでした。
確かにそれなら簡単ですね。なるほどなるほど・・・。
しかしどうして>>757のコードで 改行が <br> に置き換わらないのでしょうか?

>>759
>txtFile.Write "<HEAD><TITLE>うんこやろ〜</HEAD></HEAD>"
この行</HEAD>が2個あります。</TITLE>の間違いでしょうか(内側のHEAD)

>>760
へぇ・・・そんな時代があったんですかぁ〜・・・。

762 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 16:34:20 ]
Replaceは結果を戻り値に返すからこう使わないといけないはず。
strOutStrings = Replace(strOutStrings, vbCrLf, "<br>")

""がうざいのは、
ダブルクォーテーションではなくシングルクォーテーションを使うとか、
(属性はシングルでいい。でもDOCTYPEはわからない)
先頭(head要素が終わるまでくらい)をテキストに用意しておいて、
txtFileの頭にそれを書き出すとかでどう。
.Write objFso.OpenTextFile("c:\header.txt", 1).ReadAll



763 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 16:46:23 ]
>HTMLって意外と"を使いますし。

ならJScriptつかえよ
HTMLタグをつけるメソッドもあるし

764 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 17:58:02 ]
>>763
DOMのことならVBScriptからでも使えるだろ。

765 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 18:18:23 ]
Stringオブジェクトのことだろ

766 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 18:45:06 ]
でもあまり使えるメソッドがないな

767 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 19:49:38 ]
HTMLタグをつけるメソッドを付けた奴は、きっと浮かれ過ぎていたんだろうな。
後でcreat以上に恥ずかしい思いをしたに違いない。

768 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 20:09:23 ]
JScriptだから好きなメソッドが追加できるよ
.quote()なんてのもいいんじゃね

769 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 20:15:50 ]
anchor(anchorString), big(), blink(). bold(), fixed(),
fontcolor(colorVal), fontsize(intSize), italics(), link(linkstring),
small(), strike(), sub(), sup()
確かに今更これらを使う気にならない

770 名前:756 mailto:sage [2008/02/20(水) 22:51:33 ]
>>762
>strOutStrings = Replace(strOutStrings, vbCrLf, "<br>")
あ、なるほど、確かにそうだ・・・失敗失敗・・・。

>先頭(head要素が終わるまでくらい)をテキストに用意しておいて、
txtFileの頭にそれを書き出すとかでどう。

なるほどねぇ・・・参考になります。

>>763
JScript使った事無いので全然知りません。

>>769
が言っている事がさっぱり分からない・・・

771 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 23:13:16 ]
俺もJScriptは使わないけど、ヘルプはあるんでJScriptのヘルプより抜粋。

> anchor メソッド参 照
> link メソッド| String Object メソッド | String Object プロパティ
>
> 対象: String オブジェクト
> 必要条件
> バージョン 1
> String オブジェクトに格納されている文字列の前後に HTML の NAME 属性を指定する <A> タグを挿入します。
>
> strVariable.anchor(anchorString)
> 引数
> strVariable
> 必ず指定します。String オブジェクトの名前またはリテラルを指定します。
> anchorString
> 必ず指定します。アンカー タグの NAME 属性に挿入する文字列を指定します。
> 解説
> anchor メソッドを呼び出すと、String オブジェクトから名前付きアンカーが作成されます。anchor メソッドの使用例を次に示します。
>
> var strVariable = "これはアンカーです";
> strVariable = strVariable.anchor("Anchor1");
> 2 つ目のステートメントの実行後、変数 strVariable は次の値になります。
>
> <A NAME="Anchor1">これはアンカーです</A>
> このメソッドの実行時には、<A> タグが既に元の文字列内にあるかどうかの確認は行われません。

後の関数も似たようなもんだろ。さすがにこれはどうかね・・・

772 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 10:32:49 ]
BASP21のSpaceメソッドほどではない。

# あれは馬場さん自身「作者の無知からくる全くのゴミメソッド」なんておっしゃってたな...



773 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 10:43:06 ]
|BASP21メソッド編
| 1. BASP21のSpaceメソッドはなんであるの
|   えーとこれは、作者の無知からくる全くのゴミメソッドです。
|   HTML でスペースをあけるのに全角のスペースを使うことがありますが、
|   IMEでなぜか入力できなかったから(IMEのプロパティが半角スペースになっていただけ)。
|   たぶん、誰も使ってないと思いますがどうでしょう。

babaq さんオッチョコチョイ杉ワロタ

せっかくだから今度どこかで無理矢理にでも使ってあげようっと

774 名前:デフォルトの名無しさん [2008/02/23(土) 12:50:03 ]
あれはあれで便利だからなくさないで欲しい

775 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:30:14 ]
吉岡照雄のOn Error Resume Nextの正しい使い方とやらを読んだんだが、
こんな面倒なことをしないといけないのか・・・

776 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 15:11:12 ]
>>775
On Error Resume Nextの正しい使い方教えて〜

777 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 15:23:10 ]
Subプロシージャを毎回作るのはいいけど、さらに複数行の時は入れ子。。。
Subプロシージャだらけになって大変すぎ

778 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 16:39:25 ]
ファイルの日付をデータベース(ACCESS)に格納できねぇーー

strSQL = "INSERT INTO Log " & _
" (Name " & _
" ,Date " & _
" ,SIZE) " & _
"VALUES ('" & fol.Name & "'" & _
" ,#" & fol.DateCreated & "#" &_ '←ここがおかしいらしい
" ," & fol.Size & ")"

なんか
『Insert into ステートメント の 構文エラーです』
とか出るんだけどなにがおかしいのか・・・

779 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 17:27:26 ]
文字列にフォーマットし直してから渡せ


780 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 18:51:51 ]
はぁー?

781 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 18:55:22 ]
問題はそのフォーマットだろ

782 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 19:22:20 ]
SQLの構文に合った書式に変換されるとは限らないってこった。
一旦、年月日時分秒をバラバラにして、構文に合わせた書式に作り替えればいい。
書式は自分で調べてくれ。



783 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 20:40:43 ]
#mm/dd/yyyy hh:mm:ss#
で渡すといいよ。VBScriptはFormat関数ないから面倒だ。

784 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 21:39:48 ]
コードそのままで[地域のプロパティ] を変更するといいよ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<234KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef