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 ] コードそのままで[地域のプロパティ] を変更するといいよ