打開多個文件,然後重命名所有表中的列我有一個腳本,讓用戶可以選擇選擇多個相同類型的文件,打開它們,然後重命名列。 選擇和打開文件工作正常,但重命名列一直是一個問題。 以下是我到目前為止所擁有的。
Names Default To Here( 1 );
Files = Pick File(
"Select File(s)",
"C:\Users\dkraeuter\Desktop\Temp\Test",
{"All Files|*"},
1,
0,
"",
"multiple"
);
y = {"Test", "Run", "Model"};
For( i = 1, i <= N Items( Files ), i++,
Try( Open( Files[i], "text" ) );
dt = Current Data Table() // Use Current Data Table;
For( n = 1, n < 56, n++,
:Column( n ) << Set Name( y[n] )
);
);
回复:打開多個文件,然後重命名所有表中的列您在日誌中收到任何錯誤嗎?
回复:打開多個文件,然後重命名所有表中的列你好吉姆,你能幫我解決以下問題嗎:
如果我有 2 個正在導入的數據表,並且我想更改這兩個數據表中的列名稱,該怎麼辦...下面的腳本部分將不起作用? 實際上,它僅更改一個表中的列名稱,而不更改另一個表中的列名稱。
dt1 = 數據表(1);
dt1 << 選擇其中( :Result_Valid != 1 );
dt1 << 隱藏和排除;
dt1 << 選擇排除;
dt1 << 刪除行;
dt1 << 集合名稱("數據2");
dt1 << 刪除列(“零件編號”,“唯一 ID”);
dt1 << 文本到列(分隔符( "_" ),列( :文件名 ),);
dt1 = :文件名 1 << 設置名稱 ("運行時間");
dt1 = :文件名2 << 設置名稱("維度");
dt1 = :文件名 3 << 設置名稱 ("數據類型");
dt2 = 數據表(2);
dt2 << 選擇其中( :Result_Valid != 1 );
dt2 << 隱藏和排除;
dt2 << 選擇排除;
dt2 << 刪除行;
dt2 << 集合名稱("數據1");
dt2 << 刪除列(“零件編號”,“唯一 ID”);
dt2 << 文本到列(分隔符( "_" ),列( :文件名 ),);
dt2 = :文件名 1 << 設置名稱 ("運行時間");
dt2 = :文件名 2 << 設置名稱 ("維度");
dt2 = :文件名 3 << 設置名稱 ("數據類型");
回复:打開多個文件,然後重命名所有表中的列您的 Y 列表中只有 49 個元素,而您正嘗試添加到 56 個元素。另一種可能是您第一次讀取的50條數據表>49列。您應該在代碼中檢查這一點,並且僅循環 49 列,或者如果數據表的列數較少,則僅循環 1 列數。
回复:打開多個文件,然後重命名所有表中的列我正在使用該腳本並遇到了問題。 當“n”的值超過 50 時,無論選擇多少個文件,它都只打開一個文件並重命名列。 我在日誌中收到的錯誤是:訪問或評估 'y[n]' 、 y[/*###*/n] 時的下標範圍。
這是我當前的腳本。
Names Default To Here( 1 );
Files = Pick File(
"Select File(s)",
"C:\Users\dkraeuter\Desktop\Temp\Azure",
{"All Files|*"},
1,
0,
"",
"multiple"
);
y = {"Blank", "Feed Step 2", "Cycle Stopped", "Spindle Speed 1", "Spindle Speed 2", "Number of Stones",
"Percent of Surface Interuptions", "Honing Time ", "Tool Type", "Fault Code", "Serial Number", "Feed Force 1",
"Feed Force 2", "Bore Compensation", "Feed Position at Bore", "Feed Position at End", "Feed Position at Target",
"Wedge Angle", "Part Count", "Setup Name", "Part Material", "Part Hardness", "Stone Type", "Stone Length",
"Stone Width", "Coolant Type", "Cycle Run Status", "Cycle Stone Condition", "Cycle Incoming Condition",
"Machine Model", "Stroke Speed 1", "Stroke Speed 2", "Feed Rate 1", "Feed Rate 2", "Stroke Length", "Bore Length",
"VSRR Calc", "Average Torq Spindle", "Average Torq Stroker", "Average Torque Feed", "Average Feed Force",
"Average Part Torque", "Target Final Diameter", "Surface Finish Ra", "Surface Finish Rz", "Surface Finish Rt",
"1", "2", "3"};
For( i = 1, i <= N Items( Files ), i++,
Try( dt = Open( Files[i], "text" ) );
Wait( 0 );
For( n = 1, n < 56, n++,
Column( dt, n ) << Set Name( y[n] )
);
);回复:打開多個文件,然後重命名所有表中的列我發現的錯誤如下
1. 找不到默認目錄的路徑。所以我將其更正為指向我知道的文件夾,然後“選擇文件”工作正常
2. 少了一個“;”在“y =”語句的末尾。一旦修復,代碼就會正確解析。
3. Column() 函數與:Name() 函數不同。開頭沒有“:”。
4.我還擺脫了“dt =當前數據表():”。通過將其作為 Open() 函數的結果,不再需要對其進行設置。
5. 我還在數據表中添加了對 Column() 函數的引用。這是指定 Column() 函數的最正式方法,並且避免了有關它指向哪一列的任何問題。
6. 等待( 0 );只是一種安全預防措施。它確保在運行 For() 循環之前已完全讀入數據表。您可能還想使用
dt << run formulas;
它還將確保數據表已運行。
這是我的代碼版本:
Names Default To Here( 1 );
Files = Pick File( "Select File(s)", "C:\Users\<YOUR logonid="">", {"All Files|*"}, 1, 0, "", "multiple" );
y = {"Test", "Run", "Model"};
For( i = 1, i <= N Items( Files ), i++,
Try( dt = Open( Files[i], "text" ) );
wait( 0 );
For( n = 1, n < 56, n++,
Column( dt, n ) << Set Name( y[n] )
);
);</YOUR>
回复:打開多個文件,然後重命名所有表中的列我的錯誤說明了無法識別的“;”或者 ”)”。 據我所知,它與 For 循環之後的 open 命令有關。 當我註釋掉 Open 命令時,第二個 for 循環似乎沒問題。
55 來自我要重命名的實際列數。 當我重新發佈時,我更改了列出的列名總數,但忘記更改允許的總“n”計數。
回复:打開多個文件,然後重命名所有表中的列您在日誌中收到什麼錯誤消息?我的猜測是,它表明您的下標超出範圍。您正在將變量“n”從 1 循環到 55 並引用變量“y”。一旦“n”等於 4,“y”列表中的值就已用完。