在JSL中使用open()導入文本文件時如何排除頁眉和頁腳?我的數據在數據的開頭有幾個標題行,在數據的末尾有頁腳。
頁眉和頁腳文本都以標識符開頭! .
(頁眉、頁腳和中間數據的行數各不相同)
帶有任意數據的示例(以 .txt 文件形式提供)
!標題第一行
!標題第二行
參數 LSL USL 單位
電壓 0.1 0.5 V
電容 0.3 0.7 pF
電阻 0.5 9 歐姆
! 頁腳第二行
! 頁腳第三行
! 頁腳第三行
我可以使用 open() 以便在以文本格式導入數據時排除頁眉和頁腳數據嗎?
我可以使用 open() 來導入保留頁眉和頁腳文本的數據(比如放入表格中) dt )。
我也想知道如何提取(到新表dt_new ) 不包括以標識符開頭的頁眉和頁腳的數據,例如!。
最後,我想將頁眉和頁腳數據保存在dt在一個單獨的表中,說dt_hf。 這個怎麼做?
謝謝。
數據表腳本編寫Re: JSL中使用open()導入文本文件時如何排除頁眉和頁腳?單程:
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 ) ) );
元數據與數據分離
Re: JSL中使用open()導入文本文件時如何排除頁眉和頁腳?謝謝@Craige_Hales .
如果我的數據位於數據表中而不是文本文件中,需要進行哪些更改?
(我加載文本文件並稱它為dt )。
現在我需要將頁眉和頁腳從dt。
此外,如何處理頁眉和頁腳條目之間的空行,例如頁腳第二行和頁腳第三行並且不包括它們數據?
Re: JSL中使用open()導入文本文件時如何排除頁眉和頁腳?這是你的數據表的樣子嗎?如果沒有,你能提供一個示例數據表嗎?

Re: JSL中使用open()導入文本文件時如何排除頁眉和頁腳?@txnelson . 下面是它的樣子。 我想做以下事情
1. 將頁眉和頁腳文本分成一個列表。
2. 將header和foot之間除空行外的數據分離成數據表。
3.計算數據表中空條目的數量(它們根據加載的文本文件而變化)

謝謝。
Re: 在 JSL 中使用 open() 導入文本文件時如何排除頁眉和頁腳?這是我認為您需要的一個簡單示例。
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>