Come escludere intestazione e piè di pagina quando si utilizza open() per importare un file di testo, in JSL?Ho dati che hanno diverse righe di intestazione all'inizio dei dati e piè di pagina alla fine dei dati.
Sia il testo dell'intestazione che del piè di pagina iniziano con un identificatore ! .
(il numero di righe di intestazione, piè di pagina e dati intermedi varia)
Esempio con dati arbitrari (disponibile come file .txt)
! intestazione prima riga
! intestazione seconda riga
Parametro LSL Unità USL
tensione 0,1 0,5 V
Capacità 0,3 0,7 pF
Resistenza 0,5 9 Ohm
! Piè di pagina seconda riga
! Piè di pagina terza riga
! Piè di pagina terza riga
Posso utilizzare open() in modo da poter escludere i dati di intestazione e piè di pagina durante l'importazione di dati in formato testo?
Sono in grado di utilizzare open() per importare i dati mantenendo il testo dell'intestazione e del piè di pagina (ad esempio in una tabella dt ).
Voglio anche sapere come estrarre (in una nuova tabella dt_nuovo ) dati esclusi l'intestazione e il piè di pagina che iniziano con un identificatore, ad esempio !.
Infine, voglio salvare i dati di intestazione e piè di pagina in dt in una tabella separata, diciamo dt_hf. Come fare questo?
Grazie.
Tabella datiSceneggiaturaRi: Come escludere intestazione e piè di pagina quando si utilizza open() per importare un file di testo, in JSL?Ecco un semplice esempio di ciò che penso ti serva.
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>Ri: Come escludere intestazione e piè di pagina quando si utilizza open() per importare un file di testo, in JSL?@txnelson . Di seguito è come appare. Vorrei fare quanto segue
1. Separare il testo dell'intestazione e del piè di pagina in un elenco.
2. Separare i dati tra l'intestazione e il piè di pagina tranne la riga vuota in una tabella di dati.
3. Conta il numero di voci vuote nella tabella dati (cambiano a seconda del file di testo caricato)

Grazie.
Ri: Come escludere intestazione e piè di pagina quando si utilizza open() per importare un file di testo, in JSL?È così che appare la tua tabella di dati?In caso negativo, potete fornire una tabella di dati di esempio?

Ri: Come escludere intestazione e piè di pagina quando si utilizza open() per importare un file di testo, in JSL?Grazie @Craige_Hales .
Quali modifiche sono necessarie se i miei dati sono in una tabella dati e non in un file di testo?
(Carico il file di testo e lo chiamo diciamo dt ).
Ora ho bisogno di separare l'intestazione e il piè di pagina da dt.
Inoltre, come gestire le righe vuote tra le voci di intestazione e piè di pagina, ad esempio lo spazio vuoto tra piè di pagina seconda riga e terza riga a piè di pagina e non includerli dati ?
Ri: Come escludere intestazione e piè di pagina quando si utilizza open() per importare un file di testo, in JSL?Senso unico:
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 ) ) );
meta data separated from datameta data separated from datametadati separati dai dati