Rename File() と Copy File() は両方とも 0 を返します。こんにちは、
小さなデータ テーブルを csv として保存する必要がありますが、ファイル拡張子は *.csv ではなく (*.blkl) にする必要があります。Save As() 関数では、このような設定はできないようです。そのため、希望するファイル名でファイルを保存する代わりに、*.blkl.csv として保存し、そのファイルを希望する名前に直接変更するか、コピーと削除のシーケンスを実行して希望する出力ファイルを取得します。
スクリプトはファイルを正常に保存しますが、Rename File() 関数と Copy File() 関数の両方が 0 を返し、操作が失敗したことを示しますが、その他の情報は提供されません。失敗したファイル操作をデバッグするにはどうすればよいでしょうか?
JMP 14.3.0 (64 ビット)
Windows 11 Enterprise (64 ビット)
前もって感謝します!
ウィンドウズRe: Rename File() と Copy File() は両方とも 0 を返しますどうやってやろうとしているのですか?私の場合はこれでうまくいきます(JMP18を使用)
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Save("$TEMP/bigclass.csv");
Show(File Exists("$TEMP/bigclass.csv"), File Exists("$TEMP/bigclass.blkl"));
Rename File("$TEMP/bigclass.csv", "bigclass.blkl");
Show(File Exists("$TEMP/bigclass.csv"), File Exists("$TEMP/bigclass.blkl"));
Re: Rename File() と Copy File() は両方とも 0 を返しますJarmoのコードがJMP 14で動作することを確認しました
Re: Rename File() と Copy File() は両方とも 0 を返します問題が見つかりました。Rename File() と Copy File() は、ファイルが存在する場合は両方とも失敗するため、個別に上書き操作を行うには適していません。削除前のチェックを追加したところ、すべてスムーズに実行されるようになりました。
今後の参考までに、jsl ライブラリ関数はこの種のデバッグ情報をどこかに報告しますか、それとも合格/不合格のステータスだけでしょうか?
Re: Rename File() と Copy File() は両方とも 0 を返しますいくつかの関数では、さらにフィードバックが返されることがあります。例えば、すでに開いているデータテーブルを上書きしようとすると、
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Save("$TEMP/bigclass_test.jmp");
dt1 = Open("$SAMPLE_DATA/Big Class Families.jmp");
dt1 << Save("$TEMP/bigclass_test.jmp");

これをログに記録します
This file could not be saved with the given name.
Unable to save file.