過去の桐井戸端BBS (桐ver.8)
12880 コマンドボタン-機能名「開く」で変数名でフォルダを指定したい pokopon 2001/09/01-08:58
コマンドボタンの機能名に「開く」があります。
これで、特定のフォルダにあるファイルを開かせたいと思っています。

ここで、目的とするフォルダを変数で指定したいのですが、なかなかうまくいきません。

例:
機能名:開く
機能パラメータリスト:&Pass

&Passには、あらかじめ、指定したフォルダ名を記述しています。
&Pass = "d:\data\*.tbl" など
ファイル名に、ワイルドカードを指定しています。

このフォルダに *.tbl がないと、エラーもでず、無視されます(そういうこの機能は仕様です)。
でも、実際にファイルがあると、Win2K下では「KD1677」の予期せぬI/Oエラーでとまり、
イベントファイルが開きっぱなしで、再ログオンしない限り回復しません。

元々、この「開く」は、直接ファイル名を指定して使うものですが、
上記のような使い方(フォルダの指定)はできないのでしょうか?

桐の会話メニュで使う ファイル==>開く==>ファイル名 と同じと思っていたもので
(こちらなら、できますよね、フォルダやワイルドカードの指定は)。

以上、よろしくご教授ください。


12881 Re:ボタン「開く」でワイルドカードは 悲しげ 2001/09/01-09:45
記事番号12880へのコメント
どもっ、pokoponさん
タイトルもそうなんですが、

>ここで、目的とするフォルダを変数で指定したいのですが、なかなかうまくいきません。

書かれていることは、フォルダの指定ではなくて(フォルダ名込みではあるが)ファイル名指定であるとしか読み取れませんけど?

まっ、それはさておき、
コマンド牡丹の「開く」機能は、ファイル名を個別に指定して行うものではないでしょうか?
ご希望のことは、入力支援牡丹からの「ファイル名選択」を使えばよいと思います。
ファイル名を取得した後、引き続いて当該ファイルを開きたいとすれば・・・・、すいません、牡丹だけでどのようにやったらいいのか、私には判りません。
私はすぐ.kevを書いちゃうタイプでして。他の方にバトンタッチ。(^^;)
12886 Re:ボタン「開く」でワイルドカードは pokopon 2001/09/01-11:10
記事番号12881へのコメント
悲しげさん どうも

>書かれていることは、フォルダの指定ではなくて(フォルダ名
>込みではあるが)ファイル名指定であるとしか読み取れません
>けど?

すいません。説明が悪いみたいでした。

>まっ、それはさておき、
>コマンド牡丹の「開く」機能は、ファイル名を個別に指定して
>行うものではないでしょうか?

基本的にはそうでしょう。桐のメニューにある、「ファイル」==>「開く」と同じ機能かな? と思った訳です。
このときには、きちんと目的のフォルダで「ファイル選択画面」となりますね。
ファイル名の欄に直接「d:\data\*.tbl」なんてタイプすれば、該当フォルダを開いてファイルを選択できます。

「なにか細工?をすれば、あるいはうまくオプションを指定すれば、実現できそうかな?」ということで、このBBSに書き込んだ次第です。
すなわち、コマンドボタンの「開く」にも、「ファイル」==>「開く」と同様の機能を期待した訳です。

>ご希望のことは、入力支援牡丹からの「ファイル名選択」を使
>えばよいと思います。
>ファイル名を取得した後、引き続いて当該ファイルを開きたい
>とすれば・・・・、すいません、牡丹だけでどのようにやった
>らいいのか、私には判りません。私はすぐ.kevを書いちゃうタ
>イプでして。他の方にバトンタッチ。(^^;)

.kevに頼らず、簡単な記述で実現できればと思っています。「開く」は、
ファイル選択コマンド + 表(あるいはフォーム)を開くコマンド のミックス型の便利な機能ですので(.kevを必要としない)、
何とか活用したいと考えた次第です。

12887 Re:ボタン「開く」でワイルドカードは 【多遊】 2001/09/01-12:21
記事番号12886へのコメント
pokoponさん

>.kevに頼らず、簡単な記述で実現できればと思っています。「開く」は、ファイル選択コマン
>ド + 表(あるいはフォーム)を開くコマンド のミックス型の便利な機能ですので(.kev
>を必要としない)、何とか活用したいと考えた次第です。

コマンドボタンで変数にファイル名を取得するだけです。

コマンドボタンの内容
標題:選択(&S)
機能:ファイル名入力
パラメーターリスト:&選択ファイル名,"*.*","ファイル選択","表(*.tbl)|*.tbl",&選択ファイル名,"選択(&S)"

適当にご自分の環境に合わせてテストしてみてくださいネ
確認は、テキストボックスに「&選択ファイル名」を設定した物を作成してください

次に開くためには2行目以降で記述すればいいでしょう
開く &選択ファイル名  etc

12888 Re:ボタン「開く」でワイルドカードは 【多遊】 2001/09/01-12:25
記事番号12887へのコメント
補足:マウスで操作される場合は最後の,"選択(&S)"は、必要ないです

12889 Re:ボタン「開く」でワイルドカードは 悲しげ 2001/09/01-12:34
記事番号12886へのコメント
な〜んだ、よく見るとコマンド牡丹の機能に「ファイル名入力」ってあるじゃないですか(^^;)。
え〜、次のようにして試してみて下さい。
--------------------------------------------------------
機能名       パメラメリスト
なし        #代入(&STR,"D:\Data\NanTara\*.wfm")
ファイル名入力   &STR
開く        &STR
なし
--------------------------------------------------------
12890 Re:ボタン「開く」でワイルドカードは 悲しげ 2001/09/01-12:39
記事番号12889へのコメント
あっ、No.12887で【多遊】さんから正確な書式が上がっていましたね。
失礼しました。<(_ _)>
12891 1つの機能でなんとか?? pokopon 2001/09/01-13:10
記事番号12886へのコメント
悲しげさん 多遊さん 早速ありがとうございました。

実は、ご紹介いただいた手法は、すでに使っています。

どうも、説明が不足で、お手間をおかけしました。

この機能名
「ファイル名入力」 
「開く」
を1つの機能名で解決したいということです。

機能名は4つまでの指定です。その後に、またいくつかの機能名を指定していて、「1行足りない」状況だったので、
機能名「開く」だけで対応できないか、オプション指定の工夫で可能かどうか検討していたものです。
イベントを作成しても良いのですが、保守管理上の問題もあり、できるだけイベントを使わず実現したい事情もありました。

ということで、「1つの機能名で」が抜けていました。わざわざご指導いただいたいて、お手数をおかけしました。

・・・・やっぱり無理なのかな〜(もともと欲張った内容ですけど)。

12892 Re:1つの機能でなんとか?? 【多遊】 2001/09/01-13:22
記事番号12891へのコメント
pokoponさん

質問からはずれますが、他の3行は2行へ出来ないのでしょうか?
(だから、質問なのでしょうけど)


12893 Re:1つの機能でなんとか?? hidetake 2001/09/01-13:44
記事番号12891へのコメント
>この機能名
>「ファイル名入力」 
>「開く」
>を1つの機能名で解決したいということです。

「開く」でオプションを何も付かなかったら?

12894 Re:1つの機能でなんとか?? hidetake 2001/09/01-13:47
記事番号12893へのコメント
>「開く」でオプションを何も付かなかったら?

特定のフォルダと言う前提があったのですね!
カーレントフォルダをそこに移動しておけば
良いのかも知れないけど・・・ さて?


12895 Re:1つの機能でなんとか?? 【多遊】 2001/09/01-14:02
記事番号12891へのコメント
機能名:開く
パラメータ:
&選択ファイル名,"*.*","ファイル選択","表(*.tbl)|*.tbl",&選択ファイル名

なんかこれで行きそうですがいかがでしょう

と、思ったが、パス名をどこで使用するか残ってますね
12896 Re:1つの機能でなんとか?? hidetake 2001/09/01-14:14
記事番号12895へのコメント
>&選択ファイル名,"*.*","ファイル選択","表(*.tbl)|*.tbl",&選択ファイル名

これって、&選択ファイル名が未定義だからでは?

12915 もうちょいなんですよ pokopon 2001/09/02-00:20
記事番号12891へのコメント
みなさん いろいろとご意見をいただき、感謝します。

機能名「開く」
機能パラメータリスト:無し
ならば、#データパスで得られるフォルダを開いてくれます。
hidetakeさんの意見がちょと気になりました。
「データパスを事前に変えられれば・・・・」

であれば、機能名パラメータリストに、結果的に「未定義」となり、なおかつデータパスを変更するような関数をおけばどうかな?
と思っています。

例えば、機能パラメータリストへ
#ファイル検索("d:\data\*.XXX",1)
なんておいてみます。*.XXXは絶対にあり得ない拡張子を指定しておきます。ファイルが見つからなければ(実際にはありませんので)#Uが返ってきますので。

しかし、#ファイル名検索では、データパスの変更がなされないようです。ですので、この結果は元々のデータパスを開いてしまいます。

結果的に#Uが返ってきて、データパスを変更する(直接でなく結果的に変更されても可ですけど)関数があれば実現可能かと。
でも、この関数を見つけられません。

#計算(#何とか,#U)

として、#何とか が見つかれば、いけそうです。結果的に#Uを返せばよい訳ですので。

何かありませんか? こんな都合の良い関数は。コマンドならあるのですが。

何か、トリッキーな手法になりそうですが、1つの機能名で可能なら、新たな発見です。

【多遊】さんの「機能名を3つを2つになりませんか?」は無理です。
節約して、やっと3つまで縮小したので。
イベントですんなり解決をはかっても良いのですけど、もうちょいのところまで来ていますので、
もう少し皆さんのお知恵を拝借したいと思います。


戻る