2014-05-09 25 views
0

我正在解析文本文件並將其導入數據網格視圖。該文件設置如下:解析文本文件到DGV,需要更換多個連續的時間段

number 1 .......... 845.6 
number 2 .......  0.0001 
col 1  col 2  col 3 
1.233  4.55  1000 

我需要將這些值放入DGV,然後我可以將它們插入到Excel模板中。除了一行之外,我有一切工作。 「號碼1」行全部在一個單元中結束。我會解釋爲什麼。

我使用下面的代碼來處理每一行,並首先從數據中創建一個csv。

TextLine = Regex.Replace(TextLine, " {2,}", " ") 
TextLine = Replace(TextLine, " ", ",") 

由於在文件中的數據由每行上一個以上的連續的空間分離(除「編號1」)我只需更換用逗號每次出現時,我得到一個很好的結果。我試圖做的是用空格替換連續的句點,所以「數字1」與數值分開。

我已經嘗試了幾件事情:

TextLine = Regex.Replace(TextLine, "(.)\1{2,}", " ") 
TextLine = Regex.Replace(TextLine, ".{2,}", " ") 

頂一個工作,但也明顯擺脫的是連續的其它字符。我也不能刪除句點,因爲有些數字有小數。我一直在想這個解決方案可能會使用該功能中的「Chr(46)」,但我似乎無法使其工作。

回答

2

您需要使用反斜線來避開點,以便它沒有特殊含義。

它看起來這是你想要什麼:

Dim textLine As String = "number 1 .......... 845.6" 
textLine = Regex.Replace(textLine, "\.{2,}", ",") 
Console.WriteLine(textLine) ' outputs "number 1 , 845.6" 

或許Regex.Replace(textLine, "\.{2,}", " ")用空格來代替兩個或-更多的連續點。