¿Cómo excluir el encabezado y el pie de página cuando se usa open () para importar un archivo de texto, en JSL?Tengo datos que tienen varias filas de encabezado al comienzo de los datos y pie de página al final de los datos.
Tanto el texto del encabezado como del pie de página comienzan con un identificador ! .
(el número de filas de encabezado, pie de página y datos intermedios varía)
Ejemplo con datos arbitrarios (disponible como archivo .txt)
! encabezado primera línea
! segunda línea del encabezado
Parámetro LSL USL Unidades
voltaje 0.1 0.5 V
Capacitancia 0,3 0,7 pF
Resistencia 0.5 9 Ohms
! Segunda línea del pie de página
! Tercera línea de pie de página
! Tercera línea de pie de página
¿Puedo usar open () para poder excluir datos de encabezado y pie de página al importar datos en formato de texto?
Puedo usar open () para importar datos manteniendo el texto del encabezado y pie de página (digamos en una tabla dt ).
También quiero saber cómo extraer (a una nueva tabla dt_new ) datos que excluyen el encabezado y el pie de página que comienzan con un identificador, digamos !.
Finalmente, quiero guardar los datos del encabezado y pie de página en dt en una mesa separada, digamos dt_hf. ¿Como hacer esto?
Gracias.
Tabla de datosScriptingRe: ¿Cómo excluir el encabezado y pie de página cuando se usa open () para importar un archivo de texto, en JSL?De una sola mano:
filename = Save Text File(
"$temp/deleteme.txt",
"\[! header first line
! header second line
Parameter LSL USL Units
voltage 0.1 0.5 V
Capacitance 0.3 0.7 pF
Resistance 0.5 9 Ohms
! Footer second line
! Footer third line
! Footer third line]\"
);
lines = Words( Load Text File( filename ), "\!n\!r" );
metadata = {};
data = {};
For( i = 1, i <= N Items( lines ), i += 1,
line = lines[i];
If( Starts With( line, "!" ),
Insert Into( metadata, line ),
Insert Into( data, line )
);
);
datafilename = Save Text File( "$temp\data.txt", Concat Items( data, "\!n" ) );
metafilename = Save Text File( "$temp\metadata.txt", Concat Items( metadata, "\!n" ) );
dtData = Open( datafilename, Import Settings( End Of Field( Tab, Spaces, Space ) ) );
dtMetadata = Open( metafilename, Import Settings( Labels( 0 ) ) );
metadatos separados de los datos
Re: ¿Cómo excluir el encabezado y pie de página cuando se usa open () para importar un archivo de texto, en JSL?Gracias @Craige_Hales .
¿Qué cambios se necesitan si mis datos están en una tabla de datos y no en un archivo de texto?
(Carga el archivo de texto y lo llamo y digo dt ).
Ahora necesito separar el encabezado y el pie de página de dt.
Además, cómo manejar líneas vacías entre las entradas de encabezado y pie de página, por ejemplo, espacio vacío entre pie de página segunda línea y pie de página tercera línea y no incluirlos en datos ?
Re: ¿Cómo excluir el encabezado y pie de página cuando se usa open () para importar un archivo de texto, en JSL?¿Es así como se ve su tabla de datos?Si no es así, ¿puede proporcionar una tabla de datos de muestra?

Re: ¿Cómo excluir el encabezado y pie de página cuando se usa open () para importar un archivo de texto, en JSL?@txnelson . A continuación se muestra cómo se ve. Me gustaría hacer lo siguiente
1. Separe el texto del encabezado y pie de página en una lista.
2. Separe los datos entre el encabezado y el pie, excepto la línea vacía, en una tabla de datos.
3. Cuente el número de entradas vacías en la tabla de datos (cambian según el archivo de texto que se cargue)

Gracias.
Re: ¿Cómo excluir el encabezado y el pie de página cuando se usa open () para importar un archivo de texto, en JSL?Aquí hay un ejemplo simple de lo que creo que necesitas.
Names Default To Here( 1 );
dt = Current Data Table();
headFootList = {};
col1Name = Column( 1 ) << get name;
Eval(
Parse(
Eval Insert(
"For Each Row( If( Contains( :^col1Name^, \!"!\!" ) == 1, Insert Into( headFootList, :^col1Name^ ) ) )"
)
)
);
Eval(
Parse(
Eval Insert(
"emptyCount = N Rows( dt << get rows where( :^col1Name^ == \!"\!" ) )"
)
)
);
Eval(
Parse(
Eval Insert(
"dt << select where( contains(:^col1Name^,\!"!\!")==1 | :^col1Name^ == \!"\!")"
)
)
);
Try( dt << delete rows );
dtHeadFoot = New Table( "Headers and Footers",
New Column( "Headers and Footers", character, set values( headFootList ) )
);
New Window( "Count of Empty Rows",
<<MODAL></MODAL>