调试 Dat 文件的 JSL 打开并修改然后保存以关闭任何人都可以帮助修复下面的 jsl,
目标是打开同一目录下的所有dat文件并删除2行,然后保存。
谢谢
directory = Pick Directory();
fileNames = Files In Directory( directory );
For( iFile = 1, iFile <= N Items( fileNames ), iFile++,
filename = fileNames[iFile];
If( Ends With( filename, ".dat" ),
dt = Open( directory || filename );
//delete first 2 rows
dt << Select Where( Row() < 3 );
dt << delete rows;
Close( dt, "save" );
);
);
脚本回复:调试 Dat 文件的 JSL 打开并修改然后保存以关闭我通过在下面进行修改来修复错误,
If( Right( y[i], 3 ) == "dat", ...............
非常感谢
回复:调试 Dat 文件的 JSL 打开并修改然后保存以关闭谢谢吉姆,摩根。
我使用逐步方法检查循环,结果发现问题发生在打开 .dat 文件时。
运行 open .dat 后没有反应。
我将其更改为打开 .txt,它工作正常。
您知道为什么会发生这种情况以及如何解决吗?
谢谢
回复:调试 Dat 文件的 JSL 打开并修改然后保存以关闭@斯托克斯,
Jim 给了你一些很棒的调试建议。 以下是一些注意事项/潜在问题。 正如吉姆所建议的那样,日志中的错误或对您的任务的描述以及运行脚本时发生的情况将提供信息。
- 您可以使用 dt << delete rows(1::2); 而不是选择 where() 和删除
- 我经常使用 wait( 0 );保存后,在继续之前强制完成。
- 您的脚本正在寻找文件.DAT扩展名,这是一种通用文件类型。 您正在将其读入 JMP 数据表,然后编写脚本节省.这有几个潜在的问题,意想不到的后果:
- 文件类型可能需要更多详细信息才能正确读取,因此打开可能会导致错误。
- 假设文件被正确读入 JMP 数据表,一个节省会将文件另存为 .JMP 文件。 那是你的意图吗?或者你想把它保存为.DAT文件?通常,当用户提出此类问题时,他们希望使用 JMP 清理由某些自动化计量工具编写的数据文件,该文件具有不同格式的标头信息。 该标头信息可能导致 Open() 错误和其他问题。 因此了解任务将有助于 JMP 社区提供解决方案。 根据任务,一个加载文本文件()或者打开()可能需要带有导入文本选项。
- 如果响应选择目录() prompt 是一个可读但不可写的目录,这可能会导致错误,或者文件被保存在一个不想要的目录中。 例如,如果我修改您的脚本以读取 .TXT 文件并为 JMP Samples/Import Data 选择目录,程序将读取 .txt 文件但将它们保存为 .JMP 文件,但不会保存在 JMP Samples/Import Data 目录中,因为它是不可写的。
这些项目旨在帮助阐明需要帮助您的详细信息类型。
回复:调试 Dat 文件的 JSL 打开并修改然后保存以关闭你在日志中得到任何错误吗?如果有,它们是什么?
我怀疑 Select Where 运行得太快,因为文件正在打开,JMP 将在后台执行此操作。尝试把线
dt << rerun formulas;
在 open() 之后,看看是否可行。
我通常对这样的代码做的是运行第 1 行和第 2 行。找到第一个以 .dat 结尾的文件,并将“文件名”设置为其值,然后一次运行一个文件,打开、选择位置、删除和关闭行,看看会发生什么。