使用变量和通配符打开 JMP 文件<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />提示用户选择文本文件后,将打开该文件并根据该文本数据文件名中包含的站点名称创建一个变量,如下所示
dt.rawdata = 打开(
选择文件(......
)
);
// 创建文件名字符串
dtname = dt.rawdata << 获取名称;
// 创建名为 siteid 的变量,仅从文件名中删除站点名称
If( Word( 1, dtname, "_" ) == "UC",
站点ID =“UC_”||字(2,dtname,“_”),
siteid = Word( 1, dtname, "_" )
);
我现在遇到的困难是如何打开名称中包含刚刚确定的siteid的JMP数据文件。目录中有大约 40 个 .xls 和 .jmp 数据文件,我正在尝试打开文件名中包含 siteid 的唯一 JMP 文件,如下所示
在哪里 ?是 LTEM 数据后面的文本字符串的通配符。文件名遵循 siteid LTEM Data, yyyy - YTD.jmp 格式,其中 yyyy 指起始年份,并根据站点 ID 的不同而变化。
dt.metplots = 打开(
“$dir_metplots/” ||站点ID || “LTEM 数据?” || “.jmp”
);
是否有一个通配符可以用于此目的,或者是否有其他一些聪明的方法来实现此目的?提前致谢。
回复:使用变量和通配符打开 JMP 文件谢谢女士,
效果很好。我想知道如何使用所提供的代码设法获取正确的 JMP 文件,即使存在许多其他带有 siteid 前缀的文件。事实证明,幸运的是,我要打开的正确文件是第一个列出的带有 siteid 前缀的文件。因此,为了确保在列表中与 siteid 对应的第一个文件不是 JMP 文件时打开 JMP 文件,我添加了以下 Ends With 代码。
对于( i = 1, i <= n, i++,
If( AND( 开头为( 文件, siteid ), 结尾为( 文件、“jmp”))、
文件名=文件;
休息();
)
);
从这个小练习中学到了很多东西。再次感谢您的帮助。
回复:使用变量和通配符打开 JMP 文件我认为这里不能使用通配符。
也许这种方法适合您(刚刚从上面复制的第一个命令):
dt.原始数据=打开(选择文件()) ;
// 创建文件名字符串
数据名称= dt.原始数据<<获取姓名;
// 创建名为 siteid 的变量,仅从文件名中删除站点名称
如果(单词( 1 ,数据名称, “_” ) == “加州大学” ,
站点ID = “UC_” ||单词( 2 ,数据名称, “_” ) ,
站点ID =单词( 1 ,数据名称, “_” )
) ;
// 创建目录中的文件列表
小路= “$dir_metplots/” ;
文件=目录中的文件(小路) ;
n = N 项(文件) ;
// 获取以当前siteid开头的文件名
为了(我= 1 ,我<= n ,我++,
如果(以。。开始(文件[我] ,站点ID ) ,
文件名=文件[我] ;
休息()
)
) ;
// 打开文件
dt.metplots =打开(小路||文件名) ;