如何记录用户选择的文件夹路径以供后续数据访问如何实现保存用户定义的文件夹路径,以便脚本在下次运行时可以直接从这个默认文件夹路径读取数据?
我想从文件夹中读取数据,但我无法预测用户将把该文件夹设置在哪里。因此,在第一次运行期间,我需要能够记录用户定义的文件夹路径。我知道使用“选择文件”允许用户选择数据,但我不知道如何存储此记录,以便将来再次运行此脚本时可以直接从该文件夹中读取数据。
数据访问回复:如何记录用户选择的文件夹路径以供后续数据访问查看 Get Path() 函数。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
path = dt << Get Path();
Show( path );
回复:如何记录用户选择的文件夹路径以供后续数据访问我需要能够记录这个路径,以便用户不必每次都选择数据表。
单纯获取路径只能在那一刻检索它,但是它无法在下次执行脚本时自动读取记录的路径。
回复:如何记录用户选择的文件夹路径以供后续数据访问最简单的方法是将路径保存到计算机上的给定位置的文本文件。使用
保存文本文件()
如果你在脚本中添加类似
path = try(load text file(":c/users/jim/myfile.txt"),"");
如果脚本的先前执行已保存了文本文件位置的路径,则 Path 变量将被填充。
回复:如何记录用户选择的文件夹路径以供后续数据访问你的意思很可能是指将用户想要的路径保存为“:c/users/jim/myfile.txt”。但同样的问题出现了:我如何确认用户当前在该路径下有这个 txt 文件?如果这个文件的位置仍然未知,用户将需要指定 myfile.txt 的路径。下次打开时,我如何读取 myfile.txt 的位置?
回复:如何记录用户选择的文件夹路径以供后续数据访问您可以使用 JMP 路径变量之一指向存储和检索数据的位置。从您对要执行的操作的描述来看,您想要的功能似乎不是关键功能,因此将文件放入 TEMP 路径中的文件夹中可能是处理此问题的方法。如果在脚本的开头,您有类似
Names Default To Here( 1 );
If( Is Directory( "$TEMP" || "/myfolder" ) == 0,
rc = Create Directory( "$TEMP" || "/myFolder" )
);
If( Is File( "$TEMP" || "/myFolder/myfile.txt" ) == 1,
thePath = Load Text File( "$TEMP" || "/myFolder/myfile.txt" )
);
如果不存在 myfile.txt,您将能够创建一个地方来存储它;如果该文件在之前的运行中被放在那里,那么它就可以在当前脚本运行中被检索到并使用。
您可能想要探索 TEMP 以外的其他路径变量来了解哪个位置最适合您的需要。
在看
帮助=>JMP 在线帮助
有关路径变量的文档
以及
帮助=>脚本索引
有关 IsDirectory() 和 IsFile() 的示例