2013-09-01 70 views
0

我期望能够从一个richtextbox(称为ReportText)中选择多个“列”数据并在第二个richtextbox中显示它(称为UploadText)。按列,我的意思是由vbTab分隔的每一段数据。



我的数据看起来有点像这样:在VB.Net中读取多行制表符分隔的richtextbox文本中的特定数据列

COLUMN1(vbTab)列2(vbTab)栏3(vbTab)column4(vbTab)column5 .....(vbCrLf)
1A(vbTab) 1b(vbTab)1c(vbTab)1d(vbTab)1e(vbTab)...(vbCrLf)
2a(vbTab)2b(vbTab)2c(vbTab)2d(vbTab)2e(vbTab)...(vbCrLf) )

-NB我写了(vbTab)来表示信息的制表符分隔特性和(vbCrLf)用于新行。

- 请注意,第一个RTB中的信息将有超过5列和3行,以上仅供说明用途。


任何人都可以请给我指导我如何做到这一点?很高兴详细说明任何不清楚的地方。我假设我想分割成2d数组(或类似),但不知道如何做到这一点,也没有要求从第一个RTB(ReportText)的column1和column3的特定数据显示在第二个RTB (UploadText)。

预先感谢您的帮助,

最大

回答

0

RichTextBoxLines属性采用vbCrLf问题的关心。在每一行中,您可以依靠Split,将vbTab作为分割字符。下面的代码示例采用第三列(指数= 2)InRTB所有行的值,并写入其中,每行一个,到OutRTB

Dim rowNo As Integer = -1 
For Each line As String In inRTB.Lines 
    If (line IsNot Nothing) Then 
     rowNo = rowNo + 1 
     Dim colNo As Integer = -1 
     Dim vals() As String = line.Split(Convert.ToChar(vbTab)) 
     For Each val As String In vals 
      colNo = colNo + 1 
      If (colNo = 2) Then 
       OutRTB.Text = OutRTB.Text & val & Environment.NewLine 
       Exit For 
      End If 
     Next 
    End If 
Next 
+0

谢谢您的回复,然而,这勾起每一位的数据,在一个消息框中逐一显示 - 我所追求的是从每行取第3列,并将所有结果显示在单独的多行RTB中,以便我可以看到原始RTB列3中的所有数据。上述我怎么可以帮助? – Max

+0

@Max我虽然只是显示你的方式。你应该是适应你特定需求的代码(实际上它已经很清楚了)。我会进行修改,但是... – varocarbas

+0

谢谢你,因为你可以告诉我在这个新手... – Max

相关问题