Wie kann ich Kopf- und Fußzeilen ausschließen, wenn Sie open() zum Importieren einer Textdatei in JSL verwenden?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 einem Bezeichner ! .
(Anzahl der Kopfzeilen, Fußzeilen und 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
! Fußzeile zweite Zeile
! Fußzeile dritte Zeile
! Fußzeile dritte Zeile
Kann ich open() verwenden, um Kopf- und Fußzeilendaten beim Importieren von Daten im Textformat auszuschließen?
Ich kann open() verwenden, um Daten zu importieren, die den Kopf- und Fußzeilentext beibehalten (sagen wir in eine Tabelle) dt ).
Ich möchte auch wissen, wie man extrahiert (in eine neue Tabelle) dt_neu ) Daten ohne Kopf- und Fußzeile, die mit einem Bezeichner beginnen, sagen wir !.
Schließlich möchte ich die Kopf- und Fußzeilendaten in dt in einer separaten Tabelle, sagen wir dt_hf. Wie macht man das?
Danke.
DatentabelleSkriptingBetreff: Wie kann ich Kopf- und Fußzeilen ausschließen, wenn open() zum Importieren einer Textdatei in JSL verwendet wird?Einweg:
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 ) ) );
Metadaten von Daten getrennt
Betreff: Wie kann ich Kopf- und Fußzeilen ausschließen, wenn open() zum Importieren einer Textdatei in JSL verwendet wird?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 sagen dt ).
Jetzt muss ich Kopf- und Fußzeile trennen von dt.
Außerdem, wie man mit leeren Zeilen zwischen Kopf- und Fußzeileneinträgen umgeht, z. B. Leerzeichen zwischen Fußzeile zweite Zeile und Fußzeile dritte Zeile und füge sie nicht ein Daten ?
Betreff: Wie kann ich Kopf- und Fußzeilen ausschließen, wenn open() zum Importieren einer Textdatei in JSL verwendet wird?Sieht Ihre Datentabelle so aus?Wenn nicht, können Sie eine Beispieldatentabelle bereitstellen?

Betreff: Wie kann ich Kopf- und Fußzeilen ausschließen, wenn open() zum Importieren einer Textdatei in JSL verwendet wird?@txnelson . Unten ist, 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 kann man Kopf- und Fußzeile ausschließen, wenn man open() verwendet, um eine Textdatei in JSL zu importieren?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>