vb.net按节将文本文件拆分为不同的文件

vb.net按节将文本文件拆分为不同的文件,vb.net,Vb.net,我有很多具有相同结构的文本文件 它们每个都有未知数量的部分 所有部分的名称都是已知的。它们存储为一个数组 Dim alpha() As String = {"Section 1", "Section 2", "Section 3"} 这些部分只是纯文本,没有任何符号来帮助识别。但它们下面的文字有各种各样的符号和文字 : 前 第1节 有很多带有符号、数字和换行符的文本 第2节 有很多带有符号、数字和换行符的文本 第3节 有很多带有符号、数字和换行符的文本 现在。使用正则表达式无法实现这一点,因为

我有很多具有相同结构的文本文件

它们每个都有未知数量的部分

所有部分的名称都是已知的。它们存储为一个数组

Dim alpha() As String = {"Section 1", "Section 2", "Section 3"}
这些部分只是纯文本,没有任何符号来帮助识别。但它们下面的文字有各种各样的符号和文字

: 前

第1节

有很多带有符号、数字和换行符的文本

第2节

有很多带有符号、数字和换行符的文本

第3节

有很多带有符号、数字和换行符的文本

现在。使用正则表达式无法实现这一点,因为每个部分都不同,无法与任何内容匹配。 我想将每个部分保存到不同的文件中。如果你能帮我弄清楚如何获取,也许,每个不同文件的每个部分的数组,我可以做保存部分。
有什么想法吗?

严格来说,Stackoverflow不是一种代码编写服务,但我无法抗拒

下面的代码将满足您的要求

Dim fn As String = "K:\sectiontest.txt"
Dim completeFile As String()
Dim sectionsPostSplitting As String()()

Private Function GetSectionIndexes() As List(Of Integer)
    Dim SectionIndexes As New List(Of Integer)
    For i As Integer = 0 To completeFile.Count - 1
        If completeFile(i).StartsWith("Section") Then
            SectionIndexes.Add(i)
        End If
    Next
    Return SectionIndexes
End Function

Private Function GetSectionText(i As Integer, temptxtarray As String()) As String()
    Dim sectionText As New List(Of String)
    Dim j As Integer = i
    j += 1
    While (j < temptxtarray.Length - 1) And (Not temptxtarray(j).StartsWith("Section"))
        sectionText.Add(temptxtarray(j))
        j += 1
    End While
    Return sectionText.ToArray
End Function

Private Function SplitCompleteText(txt As String()) As String()()
    Dim sectionsText As New List(Of String())
    Dim sectionIndexes As List(Of Integer) = GetSectionIndexes()
    For i As Integer = 0 To sectionIndexes.Count - 1
        sectionsText.Add(GetSectionText(sectionIndexes(i), completeFile))
    Next
    Return sectionsText.ToArray
End Function

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    completeFile = File.ReadAllLines(fn)
    sectionsPostSplitting = SplitCompleteText(completeFile)
End Sub

在button.click中,事件处理程序将为您留下一个数组,数组中的每个项都是字符串数组,等于每个节中的文本,而不包含节头。因此,
sectionsPostSpliting(0)
将是第1节的单行字符串数组,依此类推。

请添加文本文件的示例,以及您希望如何将其拆分为行、字等。这是任何示例。一个已知的标题,然后是一个未知的行数,其中包含未知的文本。用符号发布文本,这样我们就可以知道要使用什么分隔符
sectionsPostSplitting = SplitCompleteText(completeFile)