Vb.net 如何获取特定行之间的文本
如何获取以“>>”开头的行和等于“!terminate”的行之间的所有行。例如:Vb.net 如何获取特定行之间的文本,vb.net,Vb.net,如何获取以“>>”开头的行和等于“!terminate”的行之间的所有行。例如: >> STARTING.POINT text1 text2 text3 !terminate >> STARTING.POINT.TWO textA textB textC !terminate 如何将此文本转换为数组A和B?数组A应该是这样的 >> STARTING.POINT text1 text2 text3 !terminate 数组B应该是 >> STA
>> STARTING.POINT
text1
text2
text3
!terminate
>> STARTING.POINT.TWO
textA
textB
textC
!terminate
如何将此文本转换为数组A和B?数组A应该是这样的
>> STARTING.POINT
text1
text2
text3
!terminate
数组B应该是
>> STARTING.POINT.TWO
textA
textB
textC
!terminate
请注意,这两个关键字之间可以有任意数量的字符串。“>>”后面还可以有任何字符串。最后,基于输入文本,可以有无限多的输出数组。
任何帮助都将不胜感激。:) 首先,
Split
使用vbCRLF
作为分隔符分割整个文件(假设行以这种方式终止)
第二,开始添加到第一个数组中,直到达到“!“终止”字符串
重复,添加到第二个数组
依此类推。如果每个数组都是这样的,那就很容易了:
对于x,整数=1到StringArray.Length-2
您可以读取字符串,然后使用.Split()
读取它!终止关键字。但这同样取决于字符串的大小以及它将消耗多少内存。若它在文件中,那个么更好的方法是开始读取文件并在循环中检查!每次遇到后,终止关键字并创建新的数组元素!终止关键字。对于Split()。你能说清楚吗?是的,它存储在一个文件中,但作为一个参数(以String()形式,由file.ReadAllLines生成)传递给这个函数。假设这是fileReadLine()
将点播作业,所以不需要使用vbCRLF
作为分隔符,OP只需循环直到遇到!终止
关键字,如果它的字符串仍然不需要按新行拆分()
,他可以使用拆分()
!terminate
关键字。@CoderofCode他的示例需要2个数组,每个数组包含元素,包括“!终止'。虽然您的方法有效,但他仍然需要分隔条目。和'分裂'!terminate'仍然需要进一步拆分才能将元素放入其数组中。1拆分比2拆分好。我可以尝试此操作,但数组数量未知。2不是硬编码的,我可能有多个,这取决于源文件。制作一个全局列表(列表(字符串))
,Dim
a新列表(字符串)
对于每个记录,将该“记录”添加到全局列表中。