ホームへ戻る|Data Base 桐 User Board|過去ログ一覧|検索|プロパティ |ほっ! |
▼過去ログ No48 |
書き込み数 : 2400件 |
|
|
||||||||||||
>[マウスインアウト]は使えますし、一応イベントは拾えています。 すいません。説明不足で。ファミリーで「マウスインアウト」を設定し、サブフォーム自体にファミリを設定しています。 上手くいっているかと思いきや・・・・、やっぱりマウスの動きに追随できていません。 すばやい動きでフォーム外にでると、&フラグの値が変化しません。一瞬でも拾ってくればと思ったのですが。 マウス移動と同じです。無理みたい。 も一つ発見。 サブフォームの中に別のフォームを入れて実験しましたが、このサブの中のフォームにあるレコードスクロールバー、下のフッタ部分において、このサブに「フォーカス」があたっていない時には、「マウスインアウト」のイベントが発生しません。 すなわち、サブの右、下では、フォーカスが当たっていない時にはイベントが発生していません。 フォーカスが当たっていれば、イベントが発生しているようです。 ということで、このサブフォーム方式も・・・・駄目みたい。 (^^ゞ アックンさん>ゴメンナサイ (^^ゞ (もともと、そんなすばやいマウス移動に追随したことを要求する方が間違っていますね。最後はタイマ?これだけは使いたくなかった。) |
|
|
||||||||||||
アックンさん>こんばんは ところで、 >フォームにタイトルバーやレコードスクロールバーがあると、マウス移動イベントでは対処できないです。 とは? どういう意味でしょうか? 1.マウスポインタの値が追随できない(スクロールバーがないと、完全に追随できる?) 2.スクロールバーの場所ではマウス移動イベントが利かない。 (多分2.とは思いますが) >ぼくはフォームに&マウス位置[2]の値を他の変数に渡して、変数変更メソッドでリアルタイム表示してますけど。 すばやく(もの凄く早く)フォーム外にマウスを移動した場合、 &マウス位置[2]の値(変数に渡した後でも可)は、常にフォームの幅と一致していますか? 私の確認では、「変数管理」で最後に変更された&マウス位置[2]の値を調べても(代入された変数値)、 マウスの動かし方によって、一定の内容が得られず、この値を使って「フォーム外だ」とはいえないと判断しています。 アックンさんの方では「完全一致」が得られているのでしょうか? >サブフォームは試してません。そちらで結果を試して、結果を教えてください。 [マウスインアウト]は使えますし、一応イベントは拾えています。 「フォーム外でのイベント」としては、余計なピクチャを貼り付けることなく、またそれを制御する必要もなく、一応は目的の状態は得られてはいます。 が・・・・・、 「できない事はないが」って感じでしょうか。でも、メイン&サブの関係でしょうか、イマイチ軽快さに欠けています。 |
|
|
||||||||||||
それでしたら、ファミリ(たとえばピクチャ)にマウス移動イベントを設定して、 &マウス位置[2]の値を各ピクチャの大きさと比べてはどうでしょう。 ヘッダ・フッタ・明細部毎にピクチャを配置します。 明細部は、フォーム幅よりも若干小さい幅にして、空いたところにピクチャを配置してます。 > マウス移動でポインタを追いかけ、フォームサイズ以上になれば・・・・ > これも試しましたが、すばやいマウスの移動では、ポインタの値が追随できないようです。 ぼくはフォームに&マウス位置[2]の値を他の変数に渡して、変数変更メソッドでリアルタイム表示してますけど。 フォームにタイトルバーやレコードスクロールバーがあると、マウス移動イベントでは対処できないです。 サブフォームは試してません。そちらで結果を試して、結果を教えてください。 |
|
|
||||||||||||
アックンさん>こんにちは >> 隠しオブジェクト(透明なもの、最背後に)をフォーム全体に貼り付け、これを使う事は可能でしょうけど、 >これでいいいんですよ。(^^) >・ピクチャはフォームと同じ大きさにするわけですが、1個のピクチャだけでフォーム全体をカバーしきれな >い場合は、ピクチャを複数配置して、ファミリにします。 >フォームよっては、隅々まで徹底的にカバーするために、縦横サイズが数ミリの小さな部品みたいなピクチャ >まで作ってます。 この手法はいかすぱ様の作品で既に確認しています。 しかし、オブジェクトの境目(重ねて書いたとしても)でイベントが発生してしまいます。 もちろん他のオブジェクトをまたぐ時にも発生します。 >数ミリの小さな部品 これもちょっと・・・・(^^ゞ 単に「フォームから出た時に発生するイベント」として、もっと簡単に出来ないものかということです。 フォーム自体に「マウスインアウト」がないため問題なのですが。あるいは、フォーム全体にファミリを設定 できないなど。だから、面倒になるのですけど。 「サブフォーム」って手はどうでしょうか? メインフォーム全体にサブを貼り付け、そこの中に、本物のフォームを表示させる。 サブの大きさは、メインのフォームサイズが変更となった時に(それこそフォーム外イベントで)サブそのもの のサイズも変更するとか? もちろん、その場合には、メインフォームの余計な表示を一切排除し、見た目は「メイン」と同じにすることになりますが。 う〜む、簡単そうで実は面倒ですね。 やっぱり「ないものねだり」ですかね。 |
|
|
||||||||||||
pokoponさん、こんにちは。 > 例えば、[マウスインアウト]がありますけど、これはフォームには使えません。 > 隠しオブジェクト(透明なもの、最背後に)をフォーム全体に貼り付け、これを使う事は可能でしょうけど、 >「フォームから外れた時に」となれば、どうか? これでいいいんですよ。(^^) 先日、フォームをドラッグする話題があったとき、 いかすぱさんのメニュー(簡易乱茶)をここでダウンロードされたでしょう。 あれはこれでマウスカーソルの形状を変更しています。ぼくは下のようにしてます。 proc picファミリ::マウスインアウト(長整数 &フラグ,長整数 &明細番号) if( &フラグ ) object &this.マウスポインタの種類 = "Finger.cur" else object &this.マウスポインタの種類 = "標準" end end ・このように、&フラグの戻り値で処理分けすればいいです。 ・オブジェクトは「オブジェクトのリスト」の上方に配置します。 ・背景色モードは透明にせず、好みの色、背景パターン、写真(JPG・GIF)などにしておき、 フォーム表示中に背景を別の柄に変更したりと、このような使い方をするためにピクチャにしているわけです。 ・ピクチャはフォームと同じ大きさにするわけですが、1個のピクチャだけでフォーム全体をカバーしきれない場合は、 ピクチャを複数配置して、ファミリにします。 フォームよっては、隅々まで徹底的にカバーするために、縦横サイズが数ミリの小さな部品みたいなピクチャまで作ってます。 プラモデル感覚で作れば楽しいもんです。 (あまりに部品が小さすぎて、たまにそのへんに落としてなくしたり、ゴミだと思って捨てたりして、泣くこともありますけど(^^;。) ・他のフォームでも使える汎用にしたいときは、該当イベントをcmdにしておいて、ライブラリコマンドで読み込みます。 |
|
|
||||||||||||
たまには桐に関する話題を!! (最近、自分でよく考える前に、皆に提起する方が早かったりします (^^ゞ 年かな〜 ) フォームからマウスのカーソルが外れた時に発生するイベント・・・・これは存在しませんが、それに代わる手法として、どのようなものがあるのでしょうか? 例えば、[マウスインアウト]がありますけど、これはフォームには使えません。 隠しオブジェクト(透明なもの、最背後に)をフォーム全体に貼り付け、これを使う事は可能でしょうけど、「フォームから外れた時に」となれば、どうか? 逆に、フォーム上に各実にマウスが存在しているという事を調べる方法・・・・。 マウス移動でポインタを追いかけ、フォームサイズ以上になれば・・・・これも試しましたが、すばやいマウスの移動では、ポインタの値が追随できないようです。 また、「ポインタの移動量がない=フォームの外」としても、フォーム内でマウスが動かない時には(静止状態)効果がありませんし。 桐自体に「イベント」を仕掛けられないのか? 桐のワーク領域対して「イベントを発生」とか? サブフォームに目的のフォームを表示させ、そのサブオームに対してイベントを発生? などなど、思いつくまま書きましたが、もっと簡単な方法はないものでしょうか? 「フォームからマウスポインタが外れた時」を制御したいのですが、何かよい知恵はありませんでしょうか?(今回は?が多発しています) ないものねだりはいけませんが、上手い方法はないものかと、皆さんにお聞きします。 |
|
|
||||||||||||
ちょっと話題とはそれますが、検索に関すると言えば 検索を使うのだけれども、実際の検索は行わずデータ を集計するのも非常に面白い手法だと思います。 例えば と言うように、絶対に一致しない値を返すようにして 検索する方法ですよね・・・ |
|
|
||||||||||||
> 確か「連続する半角スペースは1個の半角スペースに置き換わる」じゃなかった >でしたっけ? これって別な問題だったかな。 ホームページにアップ(掲載?)されたものを、IEなどで、見るときは、たぶん そうだと思いますが、掲示板の書き込みでは、途中でなにか連続の半角の処理(デコード)を 行ってるかもしれません。例えば改行を<br>に行うみたいな 私もあまりよくわかりません。 |
|
|
||||||||||||
文字列項目で、「あいうえお」を、検索する場合 強制改行文字を設定してあれば、データの種類は、(強制改行文字="/"と仮定) 「あいうえお」「あ/いうえお」「あい/うえお」「あいう/えお」「あいうえ/お」と いろいろなケースがあります。 会話処理で検索を行うときは、普通「あいうえお」で、行うと思いますが 上記の場合は、5回行わなくてはなりません。 まして、強制改行文字は、普段に使用されない文字が設定されてたり 表(tbl)ごとに異なったりする場合があります。そんなわけで 少しテストしてみました。・・・・ 結果が、おもしろかったのでご紹介いたします。 その前に、(検索も絞り込みもたぶん同じと思いますが?) 数値項目で、検索→比較式で 2+3 など、入力すると 値が「2+3」を評価した、「5」が選択されます 文字列項目で、検索→比較式で 2+3 など、入力すると、項目値に 5 というのがあっても 「KD1618:比較できないデータ型の組合わせがあります」と表示されます これを、「"2+3"」で、行うと、当然文字列としての「2+3」を探します。 問題は、上記「KD1618:比較できないデータ型の組合わせがあります」エラーにあります。 単に「2+3」で、検索すると計算の結果 5 と、なるため、文字列項目で、数値の検索は 出来ないよ、という意味です。 つまり、「計算式が評価(実行)されている」と、いう意味です。 だったら、その逆を利用して、計算式で行えば・・・・・・・・・・・ 長い前置きになりましたが。 計算式を「#文字置換([],#強制改行文字,"")="あいうえお"」と、かけば いいようです。 これで、途中に強制改行文字を含んだ場合も検索できるようです。 ぜひお試しください。 ps。もっといい方法もあるかと思います。ご存じのかたは、是非ご紹介ください |
|
|
||||||||||||
ふと思ったのですが、表(tbl)に、強制改行文字が 設定されてる項目で、検索するときは? ここの掲示板では、ごらんの通りに、悲しげさんはきれいに 右幅揃えで、かかれてますが、私は書き殴りです こんなとき、単語の途中で改行が入ることもあると思いますが 問題は、何文字目に入るかわかりません、 このような場合、どのようにして検索されてますか。 |
|
|
||||||||||||
ちゃうちゃう(^^;) 誤>もこれでは、有ってしかるべきスペースまで消えてしまいますけどね。ま、ieの限界なのでしょう。 ↓↑ 正>もこれでは、有ってしかるべきスペースまで消えてしまいますけどね。ま、ncの限界なのでしょう。 |
|
|
||||||||||||
確か「連続する半角スペースは1個の半角スペースに置き換わる」じゃなかった でしたっけ? これって別な問題だったかな。 |
|
|
||||||||||||
だもっ、【多遊】さん >>絞り込み→比較式の入力ボックス(またはその右[…]からの式入力ボックス) >上記方法は、表示状態で、式入力ボックスが、表示されるますので、 >この方法がいいかなと試してみましたが、どの行へ貼り付けるか?というより >どの行へも貼り付けできないようです。 あ、すいません、そのとおり。1行にはしてくれるけど、確かに「貼り付け」 まではできませんね。私の方の勘違いでした。 貼り付けまで含めると、cmd(kev)では、訂正モードで右クリック/関数(F) の利用がお奨めですね。 あと、ncのコピペでの行頭スペースはちょっと違いまして、掲示板によって行 頭につく半角スペースの数は異なります。 だから、#部分列([],2)ではなく、強いて云えば、#trim([],1)となります。で もこれでは、有ってしかるべきスペースまで消えてしまいますけどね。ま、ie の限界なのでしょう。と云う訳で、しばしばncとieの両方を起動したりしてい ます。コピペはie、ブックマークはncかなぁ。(^^;) |
|
|
||||||||||||
下記、貼り付けた結果が画面で反映されてません。再度行ってみます >理由:いま現在一番新しい記事で試してみました。 > >井戸端BBS >_______>>ボタン3 1行目 開く ”確認3.CMD” >_______>> 2行目 閉じる >_______>> >_______>今気づいたのですが、どのボタンも順不動で2番目に押されたボタンで > >Data Base 桐 User Board >___エクセルのデータを範囲指定して、桐の表に貼り付けたとき >___一つの項目へ全部貼り付けされたことが何度かあります。 >___もちろんエディタへの貼り付けは、複数行になる内容です。 > (先頭の半角スペースを半角_に置き替えしてみました) |
|
|
||||||||||||
>別件ながら、ncからだとコピペ時に行頭スペースを拾ってしまう(ieならそ >うはならないけど)。これは仕方ないんですかね? まだ(と、いうより全然)わかりませんが、NCとIEの違いの他にも・・・? あるのかもしれません。 理由:いま現在一番新しい記事で試してみました。 井戸端BBS >>ボタン3 1行目 開く ”確認3.CMD” >> 2行目 閉じる >> >今気づいたのですが、どのボタンも順不動で2番目に押されたボタンで Data Base 桐 User Board エクセルのデータを範囲指定して、桐の表に貼り付けたとき 一つの項目へ全部貼り付けされたことが何度かあります。 もちろんエディタへの貼り付けは、複数行になる内容です。 上記は、引用記号">"を省略して、エデイタからそのまま貼り付けしています 先頭からの字下げ幅が異なってます。 これは、HTMLの表<table><td>などのブラウザの解釈がことなるのでしょう ・・・てことは、 >これは仕方ないんですかね? ってことでしょうね。 |
|
|
||||||||||||
いま、落ち着いて考えると、かなり以前から経験していましたネ エクセルのデータを範囲指定して、桐の表に貼り付けたとき 一つの項目へ全部貼り付けされたことが何度かあります。 もちろんエディタへの貼り付けは、複数行になる内容です。 いまでもときどき失敗してます。コピーする方か、貼り付けする方の 範囲の指定の仕方だと思いますが、うまく行くときとそうでないときが あります。いちいちcsvへ書き出すのも面倒くさいときは 試行錯誤でやってますが、きっとルールがあるのでしょう。 |
|
|
||||||||||||
Ogoさん>ありがとうございます >#部分列([],2) でいいのでは? そうでした。どこかで、2000なる数字の記憶がありましたので・・・? >#部分列( str , n1 , n2 ) >str の n1 文字目以降の文字数が n2 文字未満なら、n2 文字になるまで、 >後ろに半角の空白文字を補う。 |
|
|
||||||||||||
>でも、結局、#部分列([],2,2000)でとれますね。 この計算式、文末に膨大な量の半角スペースが付加されません? # 確か以前につらい思いをした記憶が…… #部分列([],2) でいいのでは? |
|
|
||||||||||||
先日の話題で先頭に、例:"<>"をつける方法がありましたが、 これを日常の文章(一括やイベントでなく)や、新聞・書籍のテキストだったら 先頭の文字をどうして取り除くのか?・・・・・・・・と 考えてました。どんな文字を指定しても、文章のどこかにあるかも知れません #文字置換([],"<>","")では、無理だな・・・・・ でも、結局、#部分列([],2,2000)でとれますね。 |
|
|
||||||||||||
>絞り込み→比較式の入力ボックス(またはその右[…]からの式入力ボックス) 上記方法は、表示状態で、式入力ボックスが、表示されるますので、 この方法がいいかなと試してみましたが、どの行へ貼り付けるか?というより どの行へも貼り付けできないようです。 操作が違ったのかもしれませんが。 |
|
|
||||||||||||
なるほど〜 あと、一括処理なら次の場面でも可能なようです。 絞り込み→比較式の入力ボックス(またはその右[…]からの式入力ボックス) 別件ながら、ncからだとコピペ時に行頭スペースを拾ってしまう(ieならそ うはならないけど)。これは仕方ないんですかね? |
|
|
||||||||||||
式入力・・・(下記方法の意味です) 定義画面で、コマンドが入力出来る状態(ファンクションキーが青になってる)で マウス右クリックして、関数(F)をクリックください。 そのなかに張り付けをしてみてください |
|
|
||||||||||||
吉報 悲しげさんの言葉をヒントに試してみました。 一括でも1行貼り付け可能です 方法は・・・・・ 一括の定義画面で、「式入力」を出してそこへ貼り付けると 1行になります。 こちらこそ驚きですね |
|
|
||||||||||||
悲しげさん>おはようございます。 言葉不足でしたね。表定義の項目計算式の場所という意味でした 幅田さんのBBSで、 >14079 Re:連番入ファイル名を並べ替える で、Ogoさんが紹介されてました 計算式(引用記号">"は、省略してます) [Prefix] #条件選択(#is数字(#ファイル名([ファイル名],2),0)>0, #部分列([ファイル名],1,#is数字(#ファイル名([ファイル名],2),0)-1), 1,#ファイル名([ファイル名],2)) [連番] #条件選択(#is数字(#ファイル名([ファイル名],2),0)>0, #数値(#部分列(#ファイル名([ファイル名],2), #is数字(#ファイル名([ファイル名],2),0))), 1,0) これを貼り付けたとき気が付いたのです。一括ではもし複数に分かれても 前の行の最後に"\"を追加すればいいから気にしてなかったのですが、 表の項目計算式は2行に分かれると全然異なる意味になってしまうので いままでエディタを起動して1行にしてから貼り付けてました。 |
|
|
||||||||||||
【多遊】さん> >V8/SP6では無理です。 >少しショックでしたが、簡単な一括(イベント)では、動いてますよ。 >(もちろん利用者責任でと、いうことが条件付きです) すいませんでした。こちらの思い違いでした。 http://www.fuku3.com/~habata/kbbs/kakov8/04743.htm から「出来なくなった」という単語のみがサブリミナル効果で反復され、 & HTML HELPにものっておらず、 & 話題にものぼらず・・・・・ ということで「できない」という烙印を押していたようです。 (hidetakeさんにも指摘されました) ところで、管理者責任でとなっていますが、具体的に不具合は出ているのでしょうか? 単に、プロセス番号=ハンドル番号? >従って「プロセス終了」コマンド自体は生きているものの、 >その番号を通常の手段では知ることが不可能になりました。 >そして、この番号は NT のタスクマネージャで表示される PID でも無いようです。 >やっぱハンドル? まあ、使えるのなら、使いましょう!! |
|
|
||||||||||||
どもっ、【多遊】さん #2371の意味が判らないです。 「改行がなくなってしまう」とは自動的に1行になると云うことでしょうか? 試しにnnとieの両方で桐のcmdにコピペしてみたのですが、全然そうはなりま せんけど。(?_?) |
|
|
||||||||||||
Ogoさん>こんばんは。 レスが付くとうれしいです。ところで、 >>連番2・・・#数値([ファイル名]) >*.MP3 ファイルはどうします?( #数値(#ファイル名([ファイル名],2)) か) 送信したあとに気が付きましたが、みなわかってくれるかなと・・・ >元ファイル名が S001.jpg の場合とか。 これは、今回あっくんの例だけを対象にしただけで、汎用は考えていませんでした。 ときどき、ファイル名に aaaa[1].gif みたいに,括弧をつけてるのも見かけてことが ありますが、汎用にするためには、もっと細かい設定が必要なんでしょうね。 |
|
|
||||||||||||
>連番2・・・#数値([ファイル名]) *.MP3 ファイルはどうします?( #数値(#ファイル名([ファイル名],2)) か) >PreFix2・・#文字置換(#ファイル名([ファイル名],2),#文字列([連番2]),"") 元ファイル名が S001.jpg の場合とか。 |
|
|
||||||||||||
は、そういう仕組みだったのか? 「どこからでも・自由にと」だけ、勘違いしておりました 5文字の制限は、まったく考えなかった。 しかし、別の意味であれは 連番2・・・#数値([ファイル名]) PreFix2・・#文字置換(#ファイル名([ファイル名],2),#文字列([連番2]),"") でも、いけそう |
|
|
||||||||||||
掲示板に #○○○○((△△△△△),・・・・・・・・・・・・・・・・ 1,□□□□□□□□ ) の様に紹介される計算式。 エデイタに貼り付けると2行になってしまいます。 いままで、その改行を取り除くためにエディタを事前に起動しておき 1行にしてから、桐に貼り付けてましたが、そのまま貼り付けると 改行がなくなってしまうんですね?(知らなかった) |
|
|
||||||||||||
意識したのは 2.1(2.11?) 〜 3.1 に、変わった頃だろうか? リセットせずに、FTPの切り替えが出来たのを、非常に感激したのを 覚えてます。 しかし、コマンドの内容は当時のままで、DIR は /p /w しか、利用 したことがありません。 ファイル名の取得には、chkdsk /f /v (?)もう忘れたが、それで、テキストに 落とし桐で使用したこともあったような・・・・・ |
|
|
||||||||||||
pokoponさん>こんばんは >V8/SP6では無理です。 少しショックでしたが、簡単な一括(イベント)では、動いてますよ。 (もちろん利用者責任でと、いうことが条件付きです) 例題は、「項目A・項目B・項目C」を、テキストエデイタで、編集する 内容ですが、うまく行ってます。ご紹介しておきますね。 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 手続き定義開始 エディタ::マウス左クリック(長整数 &マウス位置[2],長整数 &明細番号,長整数 &フラグ,参照 長整数 &処理中止) 絞り込み 行数=1 印字開始 "作業テキスト.txt" 印字 #文字置換([項目A],&強制改行,"\n") 印字 &項目間区切文字 印字 #文字置換([項目B],&強制改行,"\n") 印字 &項目間区切文字 印字 #文字置換([項目C],&強制改行,"\n") 印字終了 シェル実行 "作業テキスト.txt",&ok,プロセス番号=&ch プロセス終了 &ch メッセージボックス "テキスト張り付け確認","いま編集した内容にテキスト置換を\n\n行いますか",アイコン=?,ボタン指定=5,制御文字展開=する,&ok =====途中省略====== 手続き定義終了 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 意味が違うかもしれませんが、ご報告まで。 |
|
|
||||||||||||
別に怒っているわけではないのだが…… (^^;; もちろん、 VBS を使ってもいいのですよ。 同程度のことは私も DOS 時代からバッチファイルや フリーソフト群を使って行なって来ていますし。 でも、通信環境を通じて相互乗り入れが極めて簡単に なった現在、セキュリティーポリシーは汎用的な解が ない。 要するに、 VBS を使うも使わないもユーザーの自覚 をもった判断を尊重したいと私は考えるのです。 自覚を持たぬであろう人にまで「便利だから」勧める というのはどんなものかなぁ〜という程度のものです。 また、勧めるならば、その利便性と引き換えにリスク もありますよ――と添えてほしいと思う程度の。 # とは言っても、 hidetake さんなんかは笑うだろう # なぁ、プリインストールされて、本人の自覚がない # まま既に活用されているのが現実なんだから(下記 # のダイヤルアップ VBS でも LOVELETTER ウィルス # でも) >二重のチェックでも駄目でしょうか? >ダミーファイルができた事の確認と削除したことの確認で。 あゝなるほど。 元発言の内容を良く見ていませんでした。 _m(__)m_ |
|
|
||||||||||||
Ogoさん>やっぱり怒られた!! >ついでですが、これは「ダミーファイルが作成される前に」桐側で >チェックルーチンに差し掛かったら、失敗に終わります。 二重のチェックでも駄目でしょうか? ダミーファイルができた事の確認と削除したことの確認で。 下のスレッドの記述でダメな事もあるのでしょうか?その前に、VBS実行の前にダミーファイルが仮にあったときには、削除してからVBSの実行をする事を前提としてですけど。 >このファイルの存在を検知したら、処理終了と看做して、当該 >ファイルを削除した上で次のステップに進むようにしてます。 これが現実的か。桐側で削除すればよいですからね。削除しなければ、LOGとして確認できますし。 >全く怒る気はないけど、これを実行「させる」と言うことは >そのマシンのユーザーのセキュリティレベルを落と「させる」 >という行為であるという自覚が欲しいなとは思います。 全くそのとおりで・・・・。返す言葉もありません。 m(__)m 自覚が足りなかったようです。WSHはローカルにおいて、自己の責任の元に使うスクリプトです。他人に実行を強要するようなことではありませんですね。 「お手軽なスクリプト」として紹介したつもりでしたけど、セキュリティ云々と言われれば危険な行為でした。 |
|
|
||||||||||||
>どうしても、同期をはからなければならない場合には、 >VBSの先頭で、ダミーファイルを作成し、終わったら削除する。 >桐側でそれを監視し、「ダミーファイルそのものがなくなったら次の行へ行く」とか。 ついでですが、これは「ダミーファイルが作成される前に」桐側で チェックルーチンに差し掛かったら、失敗に終わります。 そこで、私の ShellEx.exe ではその逆に、「処理が終わったら」 >このアプレットは、動作完了時(成功しても失敗しても)に >必ず「$Finish.Txt」という名の「動作完了確認用」テキスト >ファイルを同一フォルダに生成します このファイルの存在を検知したら、処理終了と看做して、当該 ファイルを削除した上で次のステップに進むようにしてます。 |
|
|
||||||||||||
>(あんまり書くとOgoさんにまた怒られそう!!) 全く怒る気はないけど、これを実行「させる」と言うことは そのマシンのユーザーのセキュリティレベルを落と「させる」 という行為であるという自覚が欲しいなとは思います。 (例えば、 MS-IE で「インターネットゾーン」と「イントラ ネットゾーン」でそれぞれセキュリティポリシーを変更できる ようになっていますが、これを簡単に欺く方法もつい最近話題 になったばかりですよね――いくら MS がパッチや修正版をリ リースしていても、これを適用していない人は極めて多いです。 当の MS でさえも) また、 VBS は Windows 環境に依存するということももちろん 考慮すべきでしょうから、とても「汎用的な処理」としては 問題があろうかなとは思います(シェル実行 *.VBS とかでなく、 システム "wscript.exe",&選択ファイル名,&実行リターン 程度なら私の機械でも動くはずですが)。 ということで、少なくとも私なら VBS や JAVA 関係に汎用的な 解決方法を見いだそうとはしないと思います。 VBS や wscript.exe が問題なのではなく、 MS-IE と MS-OutLook (Express) のセキュリティポリシーこそが最大の問題なのです。 |
|
|
||||||||||||
【多遊】さん> >その中で、下記を見つけましたが、「プロセス終了」等をいれるといいかもしれませんね V8/SP6では無理です。 #プロセス終了 kill /*桐 Ver8 sp4 #22 実質的に使用不能となる HTML HELPを参照してみて下さい。 ■構文 シェル実行 <ファイル名> ,起動フォルダ = <フォルダ名> ,<長整数型の変数名> とあるように、書式まで変わっているようです。 (まだ、上記の書式でつかえるのかな?? 確かめてはいませんけど) VBSはWindows で「wscript.exe」という実行ファイルに関連付けられていて、そのため「.vbs」のファイルをクリックするだけで、実行できます。VBSファイルは単なるソースファイルで、実行ファイルではありません。 (ちなみにDOSモードで動かす場合には、「cscript.exe」が実行ファイル) ですので、VBSが確実に終わったということは、桐側からはわかりません。(桐からは強制的に終わらせることさえができない??実行しっぱなし) どうしても、同期をはからなければならない場合には、 VBSの先頭で、ダミーファイルを作成し、終わったら削除する。 桐側でそれを監視し、「ダミーファイルそのものがなくなったら次の行へ行く」とか。 '------------- ファイル変換スクリプト(WSH) ------------- 桐との同期タイプ Const ForReading = 1,ForWriting = 2,ForAppending = 8 '定数の指定 Set Fs = WScript.CreateObject("Scripting.FileSystemObject") sFile = "read.txt" ' 読み込みテキストファイル sWord = "<>" ' 先頭付加文字 rFile = "result.txt" '結果書き込みファイル dFile = "dummy.dat" 'ダミーファイル Set oTs1 = Fs.OpenTextFile(dFile,ForWriting) 'ダミーファイル作成 空ファイル oTs1.Close 'oTs1を閉じる Set oTs1 = Fs.OpenTextFile(sFile,ForReading) 'ファイルを読み取りモードで開く Set oTs2 = Fs.CreateTextFile(rFile,True) 'ファイルを作成する Do Until oTs1.AtEndOfStream 'oTs1を末端まで読み込むまでループを繰り返す sLine = oTs1.ReadLine '1行読み込む oTs2.Write sWord & sLine & vbCrLf '先頭に文字を付加して書き込む Loop oTs1.Close 'oTs1を閉じる oTs2.Close 'oTs2を閉じる Fs.DeleteFile dFile 'ダミーファイル削除 実質的なVBS作業の終了を宣言!!?? MsgBox "変換結果を " & rFile & " に出力しました。" '----------- END --------------- 桐側で シェル実行 &vbs 繰り返し (#ファイル検索(&dFile,1)=#U) /* まず、VBSが実行されているかどうかの確認(実行されれば、ファイルが存在する) 繰り返し終了 繰り返し (#ファイル検索(&dFile,1)<>#U) /* VBSが終わったかどうかの確認(削除されれば、終わり) /* ここの間にVBSは作業をしている。 繰り返し終了 としておけば、同期がはかれると思います。ただ、ループ自体が「デッドロック」となっていますので、どうでしょうか? (この手法はhidetakeさんからおそわりました) (あんまり書くとOgoさんにまた怒られそう!!) |
|
|
||||||||||||
>表 "jxw.tbl" /*ところで.jxwって何でしたっけ?*/ 「jxw」は、一太郎のV3時代の拡張子です。(それ以前はわかりません) 確か「jxw,atr,ctl」(だったかな?)の、3個を同時に作成されてて そのうち、テキスト部分が 「jxw」の、拡張子のファイルに格納されてました。 そのころのファイルは、まだ、拡張子が重複してなかったので、ある程度 APとバージョンまでわかりましたね。 windows には、関連づけという機能がありますので、同じ拡張子はには、 同じ関連づけがされてますが、justsystem の、フォルダーのなかにも、 拡張子が「tbl」のファイルが入ってたりします。でも、当然桐では 開けません。 3文字以外も拡張子というのでしょうが、*.html *.shtml なども有効のようです 試しに、「******.txt」を「******.abcdefg」に変更してもエラーにはなりませんでした windows は、250文字くらいの名前(フォルダー名込み?)が付けられますので 桐のファイルも、******.tbl9 とか ********.wfm9 とか、なったりして? |
|
|
||||||||||||
幅田さん> 無事、解決されてよかったですね。 ところで、今回は、桐で完結されたようですが >vbsは、どこで勉強すればいいのかということもお聞きしたかったのですが やはり他のこと(言語・ハード・ネットワーク他)を、ご存じの方は もっと桐を有効に利用されてるのでしょうね。本当に勉強になりますね。 |
|
|
||||||||||||
Ogoさん> >あのねぇ〜 (^^;; このうしろに続く言葉が、なんとなくわかります。 どうもありがとうございます 幅田さんのBBSのコメントなど拝見していても、いつも最後の方の >#・・・・・ >#・・・・・ も、 本当に参考になります。今後ともよろしくお願いいたします。 |
|
|
||||||||||||
私のとこのBBSにも書いたけど、バッチリ解決できました。 【多遊】さんにも、こちらでいろいろ検証いただきありがとうございました。 実は、pokoponさんにvbsでのやり方を教わったとき、 ファイル名がその都度変る場合はどうしたらいいのかと たずねようとしてたんだけど、その先に 【多遊】さんに印字コマンドを使った方法を紹介いただきました。 vbsは、どこで勉強すればいいのかということもお聞きしたかったのですが、 それもこちらで紹介いただきました。 今日は午後から、近所のお寺の会合があり、出かけておりました。 お寺ではもちろん合掌に始まり、合掌に終わるのですが、 今回のテキスト読み込みの件でもみなさまがたにいろいろ教えていただき 感謝しております。 合掌 |
|
|
||||||||||||
>バッチファイルの高級なもの・・・・と考えれば気が楽ですけど。 >その割に多機能で、ウイルスでも作れちゃうんじゃないですかね。 「ですかね」どころではありませんね。 http://www.ipa.go.jp/cgi-bin/security/virus/search/virus?vcl=vbs |
|
|
||||||||||||
>専用フォルダーの中を、もう不要と思いつい先日削除してしまってました >送信時に使用した添付ファイルは、メーラーのフォルダーには保存されず >リンクみたいになってたようです。 あのねぇ〜 (^^;; メールは自分自身にも BCC: 指定で送付するのが基本です。 もちろん、メールスレッドを全部保存するのも目的ですが、 送信・受信日時の確定データを保持するとか、自分が「送信」 した筈のメールが本当に送信されているかの確認のためには 必須と思っておいた方が良いです(Nifty などでは、メール を先方が読んだか否かまで確認できていましたが、インター ネットメールでは配信事故も多く、自分が送信したつもりで も、送信されていなかったこともありえます――特に即時送 信を使っていない場合。自分自身に現実のメールを送信受信 することで、少なくとも自分のプロバイダ側からの発信まで は正常に行なえていることが確認できるのです)。 MS-Outlook だの MS-Outlook Express だのを使っている人 が言うことなら聞き流せますが、ネスケ(メッセンジャー) やベッキーを使っている人なら、メールソフト自身にも、 そのための設定がありますよ(メール作成時に、デフォルト で自分自身を BCC: にセットする)。 Becky! 2 の場合は、「メールボックスの設定」「メール作成」 「常時付加」「BCC:」がこの設定です。 ネスケ(メッセンジャー)の場合は「設定」「メールとグループ」 「コピーとフォルダ」の中の「BCC:(B)」のチェックボックスです。 |
|
|
||||||||||||
>使う際の注意事項としては、 >シェル実行 &vbs >で「DOS窓」も出ずに動きますが、桐の一括(KEV)とは非同期で実行されます。 >ですので、同期させる(VBSがきちんと終わってから次の実行)ためには、それなりの工夫が必要です。 >(できているはずと思っているファイルが、VBSがまだ作るのが間に合わなく、終わっていない場合など) 検索してみましたらたくさん紹介されてました。(殆どがhidetakeさんです) その中で、下記を見つけましたが、「プロセス終了」等をいれるといいかもしれませんね > > 過去ログ No.20 >bonito さんが喜ぶかも知れなひ? ヽ(^o^)丿 > >シェル実行 "NOTEPAD.EXE" \ > ,起動フォルダ="C:\" \ > ,表示=通常 \ > ,&実行リターン \ > ,プロセス番号=&選択件数 >プロセス終了 &選択件数 >確認 http://www2u.biglobe.ne.jp/~s_tanaka/cgi-bin/bbs/bbs.cgi?function=logview_html&no=20#973 http://www2u.biglobe.ne.jp/~s_tanaka/cgi-bin/bbs/bbs.cgi?function=logview_html&no=20#989 |
|
|
||||||||||||
>参考URL:http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/ >見てきました。いろいろ出来るようですね。 バッチファイルの高級なもの・・・・と考えれば気が楽ですけど。 その割に多機能で、ウイルスでも作れちゃうんじゃないですかね。 こちらの職場で、「ダイヤルアップが何故かダイヤルQ2へ」という方の対応をしている時、 Windowsフォルダを初め、あちこちにこのVBSが散在しておりました。 中身を見ると・・・・、ダイヤルアップ変更VBSでした。知らない間にダウンロードさせられ、実行されていたのですね。 ちなみに、それをクリックしてみると、見事にダイヤルQ2へ。 EXEファイルはローカルで実行して初めて効果を発しますけど、VBSはブラウザ上で、本人の意思とは関係なく実行させる事さえできます(セキュリティーがゆるければ)。 これは、幅田さんのBBSでOgoさんがご指摘のとおりです。 でも、使うと便利な事も多いので、私は使う事がしばしばです。 (コンパイラとかインストールしなくてもよですし、記述が全てテキストですので) |
|
|
||||||||||||
pokoponさん> >良いですよ〜〜 と 返事を出す前に、既に桐一括用のスクリプトに変わっている!! >なんと、すばやい。 (^^ゞ すみません。ちょっとおもしろかったので試してみたくなって。 ところで、 >参考URL:http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/ 見てきました。いろいろ出来るようですね。 でも、また1〜新しく覚えるのはつらいものがあります。 一応見てきた報告を下記へ WSHで何ができるの? ・ファイル操作ができる ・ショートカットを作ることができる ・テキスト操作ができる ・テキストファイルの読み込み・書き込みができる ・計算ができる ・アプリケーションが実行できる ・レジストリの書き換えができる ・正規表現が利用できる ・ネットワークドライブ・プリンタの接続・切断ができる ・ActiveXコントロールを呼び出せる ・シェル(エクスプローラ)の操作ができる ・Internet Explorerの操作ができる ・ウィンドウにキーコードが送れる(WSH2.0) ・ファイルやフォルダをドラッグアンドドロップできる(WSH2.0) ・Active Directoryにアクセスできる ・WMIでシステムの一元的な管理ができる でも、使えればの話ですね。 |
|
|
||||||||||||
【多遊】さん> >いいですね。私の所でも紹介させてくださいね。 良いですよ〜〜 と 返事を出す前に、既に桐一括用のスクリプトに変わっている!! なんと、すばやい。 (^^ゞ 使う際の注意事項としては、 シェル実行 &vbs で「DOS窓」も出ずに動きますが、桐の一括(KEV)とは非同期で実行されます。 ですので、同期させる(VBSがきちんと終わってから次の実行)ためには、それなりの工夫が必要です。 (できているはずと思っているファイルが、VBSがまだ作るのが間に合わなく、終わっていない場合など) >パソコンの中を「*.vbs」で、検索しましたらいくつか入ってましたが >いつ、またどのアプリが使うかは知りませんでした。 >こうして、何かの時に単独で使用するのですか? Winに最初から入っているVBSには手をつけないほうが無難です。どのソフトで使うか、あるいは何をするスクリプトか不明ですので。 通常、桐にないコマンドを実行する場合に、バッチファイルを書き出し実行させる場合がありますけど、「DOS窓が出てくる」「自動で終わらない(DOS窓が閉じない)」などの問題がありますので、私は時々これを使います。IE4(だったかな?)以上なら、どのパソコンでも「只」でWSHエンジンが搭載されており、わざわざインストールしなくても使えますので。 例えば、 ・ファイル属性の変更(桐コマンド、関数で、ファイル属性を知ることはできても、変更はできませんので) ・KEVファイル実行中のKEVファイル自身の.TBLファイルへのコピー(ファイル複写ではエラーとなりますので) この処理は確かhidetakeさんが幅田さんのBBSで紹介したとは思いますけど。 (過去ログで見たことあります) など、桐で使っているものが幾つかあります。 印字で書き出せは、簡単に使えますしね。 ところで、私はhidetakeさんとは違い?、最初から全てを作成しているのではありません。 たのHPからスクリプトを使いまわしているのが実情です。 参考URL:http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/ ところで、 ちょっと、試させてください。全6文字(全角換算) 全角 半角 混合(全角先) 混合(半角先) 失礼しました。 |
|
|
||||||||||||
「ファイル入力」方式では、こんな感じでしょうか 変数宣言 整数{&i,&ok},文字{&読込名,&読込[1000]} &読込名="D:\read.txt" ファイル入力開始 &読込名,終了状態=&ok 繰り返し &i=1,1000 ファイル入力 &読込[&i],行,終了状態=&ok ケース開始 ケース(&ok=0) メッセージボックス "確認","読み込みエラー" 終了 ケース(&ok=-1) メッセージボックス "確認","読み込み終了" 繰り返し中止 ケース終了 繰り返し終了 ファイル入力終了 |
|
|
||||||||||||
pokoponさんご紹介の >「1行まるまる読み込んで」→「先頭に適当な文字列を追加して保存」と >言う処理のためのスクリプト を、桐の一括処理に書き直しました。 pokoponさんすみません。勝手に利用させていただきました。 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 変数宣言 整数{&ok},文字{&vbs,&sFile,&rFile,&sWord} &vbs="henkan.vbs" &sFile="read.txt" &rFile="変換"+&sFile &sWord="<>" 印字開始 &vbs,終了状態=&ok *------------- ファイル変換スクリプト(WSH) ------------- 印字"Const ForReading = 1,ForWriting = 2,ForAppending = 8" /* 定数の指定 印字"Set Fs = WScript.CreateObject(""Scripting.FileSystemObject"")" 印字 印字"sFile = "+""""+&sFile+"""" /* 読み込みテキストファイル 印字"sWord = "+""""+&sWord+"""" /* 先頭付加文字 印字"rFile = "+""""+&rFile+"""" /* 結果書き込みファイル 印字 印字"Set oTs1 = Fs.OpenTextFile(sFile,ForReading)" /*ファイルを読み取りモードで開く 印字"Set oTs2 = Fs.CreateTextFile(rFile,True)" /* ファイルを作成する 印字 印字"Do Until oTs1.AtEndOfStream" /* oTs1を末端まで読み込むまでループを繰り返す 印字" sLine = oTs1.ReadLine" /* 1行読み込む 印字" oTs2.Write sWord & sLine & vbCrLf" /* 先頭に文字を付加して書き込む 印字"Loop" 印字 印字"oTs1.Close" /* oTs1を閉じる 印字"oTs2.Close" /* oTs2を閉じる 印字 印字"MsgBox ""変換結果を "" & rFile & "" に出力しました。""" 印字終了 シェル実行 &vbs −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− これを、手続きとして、変数の部分を入れ替えれば、対応可能ですね。 |
|
|
||||||||||||
例: 123456,123456,123456,123456,123456,123456 "佐田 守弘","悲しげ","Ogo","hidetake","【多遊】","幅田 浩司" 98765,"佐田 守弘","悲しげ","Ogo","hidetake","【多遊】","幅田 浩司" >エディタで、ctrl+A(すべて選択),ctrl+C(コピー)を行い >桐表で、編集→形式を指定して貼り付け(テキスト)を行うと >,や”はもちろん、先頭の空白まできれいに行くようです。 よくみると、先頭に ”がある2行目が、文字化けを起こしているようです。 >佐田 守弘""゜しげ""go""idetake""y多遊】""搏c 浩司 ちなみに、別のエディタや一太郎・ワードへ貼り付けると正常のようですが、 エクセルへの張り付けでは >佐田 守弘,"悲しげ","Ogo","hidetake","【多遊】","幅田 浩司" 先頭の ”が、なくなってます。 ということは、いま手元にないので試せませんが、松風で読んでそれを 桐へ運ぶというのはどうだろうか? 作業的には大げさのようですが、数千の文章を移行するのに途中に 手作業が入るのはなんとも忍びがたい。 ところで、桐V8には、松風の文章を扱うコマンドはあったかな? |
|
Copyright (C) 2000 CGI Arkadia All rights reserved. Script written by Shintaro Wakayama. BBS-TypeN Ver.2 Preview4 remodel advice by hidetake |