我剛剛開始學習tcl,閱讀大文件時遇到問題。 我有一個類似如下的數據文件:如何使用tcl讀取文件的每個部分?
420
360 360 360 3434.01913
P 6.9022 0.781399 -0.86106
C 4.36397 -0.627479 3.83363
P 6.90481 5.42772 3.08491
....
結束這樣的:
P -7.21325 1.71285 -0.127325
C -4.14243 0.41123 4.67585
420
.69667
所以C是一款的最後一行和420是下一節的開始。所以每420行就是整個文件的一部分。 我怎樣才能讀取這個文件的每個部分,並像它說「frame1」一樣,直到文件結尾(包含frame2,frame3和...)。 我想出了一個簡單的腳本只是爲了逐行讀取整個文件,但我不知道該怎麼做。謝謝
向我們展示你的努力來解決這個問題。 – 2014-11-06 15:01:06
好的,這正是我想出的.proc read_xyz_frame {fp n_bp} { set i 0 while {$ i <[expr $ n_bp * 4]} { if {[gets $ fp line]> 0 } { \t字段集[分裂$行「「] L將$字段名稱XYZ 然後我用得到$ fp的線,並通過它來設置n_atoms $ line1.what我想做的事,主要是做,但現在我的問題在每個部分的開頭都有兩個標題行,所以我想跳過它們(如果沒有意義,我不知道正確的術語),然後開始閱讀另一個框架或部分文件。 – amir 2014-11-07 14:55:23