Wie schließe ich Kopf- und Fußzeilen aus, wenn ich open() zum Importieren einer Textdatei in JSL verwende?Ich habe Daten, die mehrere Kopfzeilen am Anfang der Daten und eine Fußzeile am Ende der Daten haben.
Sowohl Kopf- als auch Fußzeilentext beginnen mit einer Kennung ! .
(Anzahl der Zeilen der Kopf- und Fußzeile sowie der Daten dazwischen variieren)
Beispiel mit beliebigen Daten (verfügbar als .txt-Datei)
! Kopfzeile erste Zeile
! Kopfzeile zweite Zeile
Parameter LSL USL Einheiten
Spannung 0,1 0,5 V
Kapazität 0,3 0,7 pF
Widerstand 0,5 9 Ohm
! Zweite Fußzeile
! Dritte Fußzeile
! Dritte Fußzeile
Kann ich open() verwenden, damit ich beim Importieren von Daten im Textformat Kopf- und Fußzeilendaten ausschließen kann?
Ich kann open() verwenden, um Daten zu importieren und dabei den Kopf- und Fußzeilentext beizubehalten (z. B. in eine Tabelle). dt ).
Ich möchte auch wissen, wie man (in eine neue Tabelle) extrahiert dt_new ) Daten mit Ausnahme der Kopf- und Fußzeile, die beispielsweise mit einer Kennung beginnen !.
Schließlich möchte ich die Kopf- und Fußzeilendaten speichern dt in einer separaten Tabelle, sagen wir dt_hf. Wie macht man das?
Danke.
DatenzugriffBetreff: Wie schließe ich Kopf- und Fußzeilen aus, wenn ich open() zum Importieren einer Textdatei in JSL verwende?Hier ist ein einfaches Beispiel dafür, was Sie meiner Meinung nach brauchen.
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>Betreff: Wie schließe ich Kopf- und Fußzeilen aus, wenn ich open() zum Importieren einer Textdatei in JSL verwende?@txnelson . Unten sehen Sie, wie es aussieht. Ich möchte Folgendes tun
1. Trennen Sie den Kopf- und Fußzeilentext in einer Liste.
2. Trennen Sie die Daten zwischen Kopf- und Fußzeile mit Ausnahme der Leerzeile in eine Datentabelle.
3. Zählen Sie die Anzahl der leeren Einträge in der Datentabelle (sie ändern sich je nachdem, welche Textdatei geladen wird).

Danke.
Betreff: Wie schließe ich Kopf- und Fußzeilen aus, wenn ich open() zum Importieren einer Textdatei in JSL verwende?Sieht Ihre Datentabelle so aus?Wenn nicht, können Sie eine Beispieldatentabelle bereitstellen?

Betreff: Wie schließe ich Kopf- und Fußzeilen aus, wenn ich open() zum Importieren einer Textdatei in JSL verwende?Danke @Craige_Hales .
Welche Änderungen sind erforderlich, wenn sich meine Daten in einer Datentabelle und nicht in einer Textdatei befinden?
(Ich lade die Textdatei und nenne sie say dt ).
Jetzt muss ich die Kopf- und Fußzeile trennen dt.
Außerdem erfahren Sie, wie mit Leerzeilen zwischen Kopf- und Fußzeileneinträgen umgegangen wird, z. B. Leerzeichen dazwischen Fußzeile zweite Zeile Und Fußzeile dritte Zeile und sie nicht einbeziehen Daten ?
Betreff: Wie schließe ich Kopf- und Fußzeilen aus, wenn ich open() zum Importieren einer Textdatei in JSL verwende?Ein Weg:
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 dataMetadaten getrennt von Daten