調試 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 結尾的文件,並將“文件名”設置為其值,然後一次運行一個文件,打開、選擇位置、刪除和關閉行,看看會發生什麼。