Abra varios archivos y luego cambie el nombre de las columnas en todas las tablasTengo un script que le da al usuario la opción de seleccionar varios archivos del mismo tipo, abrirlos y luego cambiar el nombre de las columnas. Seleccionar y abrir los archivos funciona bien, pero cambiar el nombre de las columnas ha sido un problema. A continuación se muestra lo que tengo hasta ahora.
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] )
);
);
Re: Abrir varios archivos y luego cambiar el nombre de las columnas en todas las tablas¿Recibes algún error en el registro?
Re: Abrir varios archivos y luego cambiar el nombre de las columnas en todas las tablasHola Jim, ¿podrías ayudarme con lo siguiente?
¿Qué pasa si tengo 2 tablas de datos que estoy importando y quiero cambiar el nombre de las columnas en ambas... ¿no funcionará la sección del script siguiente? Tal como están las cosas, solo cambia el nombre de las columnas en una tabla pero no en la otra.
dt1 = Tabla de datos(1);
dt1 << seleccionar dónde( :Result_Valid != 1 );
dt1 << ocultar y excluir;
dt1 << seleccionar excluido;
dt1 << eliminar filas;
dt1 << establecer nombre ("Datos 2");
dt1 << Eliminar columnas ("Número de pieza", "ID única");
dt1 << Texto a columnas (delimitador ("_"), columnas (: nombre de archivo),);
dt1 = :Nombre de archivo 1 << establecer nombre ("Tiempo de ejecución");
dt1 = :Nombre de archivo 2 << establecer nombre ("Dimensión");
dt1 = :Nombre de archivo 3 << establecer nombre ("Tipo de datos");
dt2 = Tabla de datos(2);
dt2 << seleccionar dónde( :Result_Valid != 1 );
dt2 << ocultar y excluir;
dt2 << seleccionar excluido;
dt2 << eliminar filas;
dt2 << establecer nombre ("Datos 1");
dt2 << Eliminar columnas ("Número de pieza", "ID única");
dt2 << Texto a columnas (delimitador ("_"), columnas (: nombre de archivo),);
dt2 = :Nombre de archivo 1 << establecer nombre ("Tiempo de ejecución");
dt2 = :Nombre de archivo 2 << establecer nombre ("Dimensión");
dt2 = :Nombre de archivo 3 << establecer nombre ("Tipo de datos");
Re: Abrir varios archivos y luego cambiar el nombre de las columnas en todas las tablasSu lista Y solo tiene 49 elementos y está intentando llegar a 56.La otra posibilidad es que la tabla de 50 datos que está leyendo tenga> 49 columnas por primera vez.Debe verificar eso en el código y solo recorrer 49 columnas, o si la tabla de datos tiene menos columnas, solo recorrer 1 a través del número de columnas.
Re: Abrir varios archivos y luego cambiar el nombre de las columnas en todas las tablasEstoy usando el script y me encontré con un problema. Cuando el valor de "n" excede 50, simplemente abre un archivo y cambia el nombre de las columnas, sin importar la cantidad de archivos seleccionados. El error que recibo en el registro es: Rango de subíndices en el acceso o evaluación de 'y[n]', y[/*###*/n].
Aquí está mi guión actual.
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] )
);
);Re: Abrir varios archivos y luego cambiar el nombre de las columnas en todas las tablasLos errores que encontré fueron los siguientes.
1. No se encontró la ruta al directorio predeterminado.Así que lo corregí para que apuntara a una carpeta que sabía que tenía y luego Seleccionar archivo funcionó bien.
2. Faltaba un ";" al final de la declaración "y=".Una vez que se solucionó, el código se analizó correctamente.
3. La función Column() no es como la función :Name().No hay un ":" al principio.
4. También me deshice de "dt = tabla de datos actual():".Al colocarlo como resultado de la función Open(), ya no es necesario configurarlo.
5. También agregué en la tabla de datos una referencia a la función Columna().Es la forma más formal de especificar la función Column() y evita cualquier pregunta sobre a qué columna apunta.
6. La espera (0); Es sólo una medida de seguridad.Asegura que la tabla de datos se haya leído completamente antes de ejecutar el bucle For().También es posible que desee utilizar
dt << run formulas;
También se asegurará de que se haya ejecutado la tabla de datos.
Aquí está mi versión de su código:
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>
Re: Abrir varios archivos y luego cambiar el nombre de las columnas en todas las tablasMi error dice algo sobre un ";" no reconocido. o ")". Por lo que puedo decir, tiene algo que ver con el comando de apertura justo después del bucle For. Cuando comento el comando Abrir, el segundo bucle for parece estar bien.
El 55 provino del número real de columnas a las que estoy cambiando el nombre. Cuando volví a publicar, cambié el número total de nombres de columnas que enumeré, pero olvidé cambiar el recuento total "n" permitido.
Re: Abrir varios archivos y luego cambiar el nombre de las columnas en todas las tablas¿Qué mensaje de error aparece en el registro?Supongo que indica que su subíndice está fuera de rango.Está haciendo un bucle con su variable 'n' de 1 a 55 y haciendo referencia a su variable 'y'.Tan pronto como 'n' sea igual a 4, se habrá quedado sin valores en su lista 'y'.