2017-06-14 36 views
0

如何獲取以「>>」開頭的行和等於「!terminate」的行之間的所有行。例如:如何在特定行之間獲取文本

>> STARTING.POINT 
text1 
text2 
text3 
!terminate 
>> STARTING.POINT.TWO 
textA 
textB 
textC 
!terminate 

如何將此文本轉換爲數組A和B?數組應該是這樣的

>> STARTING.POINT 
text1 
text2 
text3 
!terminate 

和數組乙方應

>> STARTING.POINT.TWO 
textA 
textB 
textC 
!terminate 

注意,有可能是這兩個關鍵字之間的字符串中的任意量。 「>>」後面也可以有任何字符串。最後,根據輸入文本可以有無限的輸出數組。 任何幫助將非常感激。 :)

+0

如果每個數組都是這樣的,那很簡單:'For x As Integer = 1 To StringArray.Length - 2' – muffi

+0

您可以使用'!terminate'關鍵字讀取字符串和'.Split()' 。但是,這又取決於你的字符串有多大以及它要消耗多少內存。如果它在文件中,那麼更好的方法是開始讀取文件並在循環中檢查'!terminate'關鍵字,並在每次遇到'!terminate'關鍵字後創建新的數組元素。對於'Split()'你可以參考[這裏](https://stackoverflow.com/questions/2245442/c-sharp-split-a-string-by-another-string) –

+0

而且還不清楚你是否在文件中有文本,或者在每行之後有'newline'字符串。你能說清楚嗎? –

回答

1

首先,Split整個文件使用vbCRLF作爲分隔符(假設行以這種方式終止)。其次,開始添加到第一個數組,直到到達'!terminate'字符串。

重複,添加到您的第二個數組。

依此類推。

+0

假設這是文件'ReadLine()'將點擊作業,所以不需要使用'vbCRLF'作爲分隔符OP'Split()'可以循環直到遇到'!terminate'關鍵字,如果它的字符串仍然沒有需要用新行「分割()」,他可以使用'!terminate'關鍵字'Split()'。 –

+0

@CoderofCode他的例子想要2個數組,每個數組包含元素,包括'!terminate'。雖然你的方法是有效的,他仍然需要分開條目。用'!terminate'拆分仍然需要進一步拆分才能將元素放入他的數組中。 1分裂比2好。 – Mike

+0

我可以試試這個,但是我有一個未知數量的數組。 2沒有硬編碼,我可能有多個,這一切都取決於源文件。 – Adam

相關問題