変数とワイルドカードを使用してJMPファイルを開く<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />ユーザーにテキストファイルの選択を求めるプロンプトを表示した後、ファイルが開かれ、このテキストデータファイル名に含まれるサイト名に基づいて次のように変数が作成されます。
dt.rawdata =オープン(
ファイルを選択(.....。
)。
);
//ファイル名である文字列を作成します
dtname = dt.rawdata << Get Name;
//ファイル名からサイト名だけを削除するsiteidという変数を作成します
If(Word(1、dtname、 "_")== "UC"、
siteid = "UC_" || Word(2、dtname、 "_")、
siteid = Word(1、dtname、 "_")
);
私が今苦労しているのは、名前に決定したばかりのサイトIDが含まれているJMPデータファイルを開く方法です。ディレクトリには約40個の.xlsおよび.jmpデータファイルがあり、次のようにファイル名にsiteidを含む唯一のJMPファイルを開こうとしています。
どこ ? LTEMデータに続くテキスト文字列のワイルドカードです。ファイル名は、siteid LTEM Data、yyyy --YTD.jmpの形式に従います。ここで、yyyyは開始年を示し、サイトIDによって異なります。
dt.metplots = Open(
"$ dir_metplots /" || siteid || 「LTEMデータ?」 || 「.jmp」
);
これに使用できるワイルドカードはありますか、それともこれを達成するための他の賢い方法がありますか?前もって感謝します。
Re:変数とワイルドカードを使用してJMPファイルを開くMSに感謝します。
それはうまくいきます。siteidプレフィックスを持つ他の多くのファイルが存在するにもかかわらず、コードがどのようにして正しいJMPファイルを取得できたのか疑問に思いました。私が開きたい正しいファイルが最初にsiteidプレフィックスでリストされていたのは幸運でした。そのため、リストのsiteidに対応する最初のファイルがJMPファイルではない場合に、JMPファイルを確実に開くために、次のEndsWithコードを追加しました。
For(i = 1、i <= n、i ++、
If(AND(Starts With(ファイル、siteid)、Ends With(ファイル、"jmp"))、
ファイル名=ファイル;
壊す();
)。
);
この小さな演習から多くのことを学びました。ご協力いただきありがとうございます。
Re:変数とワイルドカードを使用してJMPファイルを開くここではワイルドカードを使用できないと思います。
たぶん、このアプローチはあなたのために働くでしょう(最初のコマンドは上からコピーされたばかりです):
dt.rawdata =開ける((ファイルを選択()) ;
//ファイル名である文字列を作成します
dtname = dt.rawdata <<名前を取得;
//ファイル名からサイト名だけを削除するsiteidという変数を作成します
もしも((語(( 1 、 dtname 、 「_」 )。 == 「UC」 、
siteid = 「UC_」 ||語(( 2 、 dtname 、 「_」 )。 、
siteid =語(( 1 、 dtname 、 「_」 )。
)。 ;
//ディレクトリにファイルのリストを作成します
道= "$ dir_metplots /" ;
ファイル=ディレクトリ内のファイル((道)。 ;
n = Nアイテム((ファイル)。 ;
//現在のsiteidで始まるファイルの名前を取得します
為に((私= 1 、私<= n 、私++、
もしも((で始まる((ファイル[私] 、 siteid )。 、
ファイル名=ファイル[私] ;
壊す()
)。
)。 ;
//ファイルを開く
dt.metplots =開ける((道||ファイル名)。 ;