打开多个文件,然后重命名所有表中的列我有一个脚本,让用户可以选择选择多个相同类型的文件,打开它们,然后重命名列。 选择和打开文件工作正常,但重命名列一直是一个问题。 以下是我到目前为止所拥有的。
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”列表中的值就已用完。