2011-01-05 47 views
0

我有一個顯示由AutoCAD中返回以下信息的txt文件:如何使用VB.NET過濾TXT文件?

; IAcadToolbar: An AutoCAD toolbar 

; Property values: 

; Application (RO) = #<VLA-OBJECT IAcadApplication 00d591b4> 

; Count (RO) = 19 

; DockStatus (RO) = 4 

; FloatingRows = 5 

; Height (RO) = AutoCAD: The toolbar is invisible. Please make it visible 

; HelpString = "Draw Toolbar\n " 

; LargeButtons (RO) = 0 

; left = 1310 

; Name = "Draw" 

; Parent (RO) = #<VLA-OBJECT IAcadToolbars 224a6b04> 

; TagString (RO) = "ID_TbDraw" 

; top = 646 

; Visible = 0 

; Width (RO) = AutoCAD: The toolbar is invisible. Please make it visible 

; Methods supported: 

; AddSeparator (1) 

; AddToolbarButton (5) 

; Delete() 

; Dock (1) 

; Float (3) 

; Item (1) 

問題的存在是我需要對其進行過濾,所以我只留下了:

; DockStatus (RO) = 4 

; left = 1310 

; Name = "Draw" 

; top = 646 

; Visible = 0 

他們還必須保持以相同的順序排列:

; DockStatus (RO) = 4總是排在後面 ; left = 1310等等,所有其他信息可能會被丟棄。

劑量任何人都知道如何在VB.NET中做到這一點?

回答

0

我建議把所有值的字符串,然後用分離器 然後篩選出你需要 的價值觀和對它們進行排序,以便您需要 然後將其轉換爲輸出格式要求

1

好吧,假設你有一個文件,你一行一行閱讀,你不能簡單地做這樣的事情嗎? (只有僞代碼)

string result; 
foreach line in linesFromFile 
{ 
    if(line.StartsWith("; DockStatus") or 
     line.StartsWith("; Name = ")) 
    { 
     result += line; 
    } 
} 

我所介紹的是不漂亮,但可能讓你開始。

3
Imports System.IO 
Imports System.Text 

Dim output = New StringBuilder() 

' Read the lines from FileName into an array of strings. ' 
Dim input = File.ReadAllLines(FileName) 

For Each line in input 

    If line.StartsWith("; DockStatus (RO) = ") OrElse 
     line.StartsWith("; left = ") OrElse 
     line.StartsWith("; Name = ") OrElse 
     line.StartsWith("; top = ") OrElse 
     line.StartsWith("; Visible = ") Then 

     output.AppendLine(line) 

    End If 

Next 
+0

@Frank。這個答案有幫助嗎?如果是這樣,你可以接受答案。關於爲什麼/如何接受答案,請參閱http://stackoverflow.com/faq。 – 2011-01-07 14:50:40