我想將有關PCB組件的文本文件解析爲數組。部分文字如下:將文本文件解析爲C#中的數組
COMP C1 MC-0000-0427 CAPACITOR 0402 0,565 5,395 2 90
C_PROP (MFG,"VISHAX") (VALUE,"10n") (TOLER,"10%") (COMPONENT_TYPE,"CAPACITOR") (REFLOC,"IN,0.02,0.0,0,CC,0.015,0.009,0.006,STD,1,YERLESIM")
C_PROP (MGC_CAT,"capacitor") (MGC_LIB,"MST Develepment Library") (MGC_INDEX,"MC-0000-0427")
C_PIN C1-1 0,565 5,395 32 2 90 PAD20X25 VA_3V3_ADC1
C_PIN C1-2 0,565 5,435 32 2 90 PAD20X25 GROUND
COMP C10 MC-0000-0427 CAPACITOR 0402 2,55 5,275 2 90
C_PROP (MFG,"VISHAX") (VALUE,"10n") (TOLER,"10%") (COMPONENT_TYPE,"CAPACITOR") (REFLOC,"IN,0.02,0.0,0,CC,0.015,0.009,0.006,STD,1,YERLESIM")
C_PROP (MGC_CAT,"capacitor") (MGC_LIB,"MST Development Library") (MGC_INDEX,"MC-0000-0427")
C_PIN C10-1 2,55 5,275 32 2 90 PAD20X25 VA_3V3_ADC4
C_PIN C10-2 2,55 5,315 32 2 90 PAD20X25 GROUND
COMP C100 MC-0000-0393 CAPACITOR 0402 3,29 4,105 2 0
C_PROP (MFG,"['MURATA','NIL',CAL CHIP']") (VALUE,"100n") (TOLER,"10%") (COMPONENT_TYPE,"CAPACITOR") (REFLOC,"IN,0.02,0.0,0,CC,0.105,0.009,0.006,std,1,YERLESIM")
C_PROP (MGC_CAT,"capacitor") (MGC_LIB,"MST Develeopment Library") (MGC_INDEX,"MC-0000-0363")
C_PIN C100-1 3,29 4,105 32 2 0 PAD20X25 GROUND
C_PIN C100-2 3,29 4,105 32 2 0 PAD20X25 VCC_2V5
這些只是文本的三個組成部分。 C1,C10和C100電容器。首先,我不需要所有這些信息。我需要的是「組件名稱」(exp:C1),「組件座標」(exp:C1的座標是x = 0,565和y = 5,395),「組件放置哪個面」(exp:C1放置在第二面),「組件的Allignment」(exp:C1的排列是90度)以及關於該組件具有的每個引腳的相同信息。正如你所看到的,這些信息存在於文本中。
陣列將是這樣的:
Column0 Column1 Column2 Column3 Column4 Column5
Row0 "C1" 0 0,565 5,395 2 90
Row1 "C1" 1 0,565 5,395 2 90
Row2 "C1" 2 0,565 5,435 2 90
Row3 "C10" 0 2,55 5,275 2 90
Row4 "C10" 1 2,55 5,275 2 90
Row5 "C10" 2 2,55 5,315 2 90
Row6 "C100" 0 3,29 4,105 2 0
Row7 "C100" 1 3,29 4,105 2 0
Row8 "C100" 2 3,25 4,105 2 0
.....
..... //and goes on..
列0:組件的名稱。
第1列:組件的引腳。我會讓程序寫「0」來定義組件本身而不是它的引腳。然後它將寫入「1」和「2」,表示組件的第1和第2引腳。
第2列:x座標系。
第3列:y座標線。
第4欄:面板。這個委員會有兩個面孔。一些組件在一號,一些在二號臉上。
第5列:組件的分配。
該板上有750多個組件,所以這些只是冰山的頂部。我的意思是,行號不固定。當程序找到新的組件或引腳時,它會添加一個新行。一些組件有超過100個引腳,引腳名稱正在改變。例如:有一個名爲「KN3」的組件,其引腳被命名爲「AF-18」(KF3-AF-18:與其他文件一樣,它在文本中是這樣寫的)。所以我不會寫「1」或「2」。我將在第一欄寫上「AF-18」。但是這個信息,我的意思是引腳的名字存在於文件中,就像這些組件的引腳一樣。
我在開始時給出的文件樣本是文本的「組件」部分。還有其他的標題和部分,但我不需要它們。我只能使用以「COMP」開頭的行(字之後有空格)和「COMP」行下面的引腳部分。所以我不需要以「C_PROP」開頭的行。我想把所有的信息寫入一個數組中。
將其拆分爲每個COMP,然後針對每個COMP運行正則表達式以獲取該行的列。唯一乏味的部分應該是正則表達式,但這看起來不太可怕 – Jonesopolis
你是認真的傢伙嗎? – 2013-06-24 20:03:31