当前位置:编程学习 > VB >>

提取分割textbox中指定内容

窗体中有text1,text2,text3,text4,text5,text6,Command1 五个控件

text4中有内容如下:
姓名 王小虎
语文 80
数学 80
英语 80
总分 240分
平均分 80分

姓名 林小冰
语文 80
数学 80
英语 80
总分 240分
平均分 80分

姓名 陈小明
语文 90
数学 90
英语 90
总分 270分
平均分 90分

姓名 杨小东
语文 70
数学 70
英语 70
总分 210分
平均分 70分

姓名 方小琪
语文 80
数学 80
英语 80
总分 240分
平均分 80分



在text1,text2,text3输入以下内容时

text1中输入:总分 240分 (当按下铵钮时提取text4中所有 "总分 240分"这一行)
text2中输入:4  (提取text4中所有 "总分 240分" 向上四行)
text3中输入:2  (提取text4中所有 "总分 240分" 向下二行) 

点击Command1时把text4的内容按text1,text2,text3的条件分割到text5,text6中

即 text5 应显示如下内容:
姓名 王小虎
语文 80
数学 80
英语 80
总分 240分
平均分 80分

姓名 林小冰
语文 80
数学 80
英语 80
总分 240分
平均分 80分

姓名 方小琪
语文 80
数学 80
英语 80
总分 240分
平均分 80分

text6 应显示如下内容:

姓名 陈小明
语文 90
数学 90
英语 90
总分 270分
平均分 90分

姓名 杨小东
语文 70
数学 70
英语 70
总分 210分
平均分 70分
--------------------编程问答-------------------- --------------------编程问答-------------------- 建议将内容提取出来,放到二维数组中,然后再对数组按你的逻辑进行循环判断 --------------------编程问答-------------------- 没明白这个向上向下是啥意思:
text2中输入:4 (提取text4中所有 "总分 240分" 向上四行)
text3中输入:2 (提取text4中所有 "总分 240分" 向下二行)   --------------------编程问答--------------------

Private Sub Command1_Click()
  If Text1 = "总分 240分" Then
     Dim tmp As String
     tmp = Text1: Text1 = ""
     Dim i As Integer
     For i = 0 To UBound(Split(Text4, vbNewLine))
         If Split(Text4, vbNewLine)(i) = tmp Then
            Text1 = Text1 & tmp & vbNewLine
         End If
     Next
  End If
  
  Dim j As Integer
  If Val(Text2) = 4 Then
     Text2 = ""
     For i = 0 To UBound(Split(Text4, vbNewLine))
         If Split(Text4, vbNewLine)(i) = tmp Then
             For j = i - 4 To i - 1
                 Text2 = Text2 & Split(Text4, vbNewLine)(j) & vbNewLine
             Next
         End If
     Next
  End If
  If Val(Text3) = 2 Then
     Text3 = ""
     For i = 0 To UBound(Split(Text4, vbNewLine))
         If Split(Text4, vbNewLine)(i) = tmp Then
             For j = i + 1 To i + 2
                 Text3 = Text3 & Split(Text4, vbNewLine)(j) & vbNewLine
             Next
         End If
     Next
  End If
  Text5 = "": Text6 = ""
  For i = 0 To UBound(Split(Text4, vbNewLine))
      If Split(Text4, vbNewLine)(i) = tmp Then
          For j = i - 4 To i + 2
              Text5 = Text5 & Split(Text4, vbNewLine)(j) & vbNewLine
          Next
      ElseIf InStr(Split(Text4, vbNewLine)(i), "总分") Then
          For j = i - 4 To i + 2
              Text6 = Text6 & Split(Text4, vbNewLine)(j) & vbNewLine
          Next
      End If
  Next

  
End Sub

Private Sub Form_Load()
Text4 = "姓名 王小虎" & vbNewLine & "语文 80" & vbNewLine & _
        "数学 80" & vbNewLine & "英语 80" & vbNewLine & _
        "总分 240分" & vbNewLine & "平均分 80分" & vbNewLine & _
        "" & vbNewLine & "姓名 林小冰" & vbNewLine & _
        "语文 80" & vbNewLine & "数学 80" & vbNewLine & _
        "英语 80" & vbNewLine & "总分 240分" & vbNewLine & _
        "平均分 80分" & vbNewLine & vbNewLine & _
        "姓名 陈小明" & vbNewLine & "语文 90" & vbNewLine & _
        "数学 90" & vbNewLine & "英语 90" & vbNewLine & _
        "总分 270分" & vbNewLine & "平均分 90分" & vbNewLine & _
         vbNewLine & "姓名 杨小东" & vbNewLine & _
        "语文 70" & vbNewLine & "数学 70" & vbNewLine & _
        "英语 70" & vbNewLine & "总分 210分" & vbNewLine & _
        "平均分 70分" & vbNewLine & vbNewLine & _
        "姓名 方小琪" & vbNewLine & "语文 80" & vbNewLine & _
        "数学 80" & vbNewLine & "英语 80" & vbNewLine & _
        "总分 240分" & vbNewLine & "平均分 80分" & vbNewLine
Text1 = "总分 240分"
Text2 = 4
Text3 = 2
End Sub

--------------------编程问答-------------------- Private Sub Form_Load()
 Me.Text1 = "姓名 王小虎" & vbNewLine & "语文 80" & vbNewLine & _
        "数学 80" & vbNewLine & "英语 80" & vbNewLine & _
        "总分 240分" & vbNewLine & "平均分 80分" & vbNewLine & _
        "" & vbCr & vbCr & "姓名 林小冰" & vbNewLine & _
        "语文 80" & vbNewLine & "数学 80" & vbNewLine & _
        "英语 80" & vbNewLine & "总分 240分" & vbNewLine & _
        "平均分 80分" & vbNewLine & vbNewLine & _
        "姓名 陈小明" & vbNewLine & "语文 90" & vbNewLine & _
        "数学 90" & vbNewLine & "英语 90" & vbNewLine & _
        "总分 270分" & vbNewLine & "平均分 90分" & vbNewLine & _
         vbNewLine & "姓名 杨小东" & vbNewLine & _
        "语文 70" & vbNewLine & "数学 70" & vbNewLine & _
        "英语 70" & vbNewLine & "总分 210分" & vbNewLine & _
        "平均分 70分" & vbNewLine & vbNewLine & _
        "姓名 方小琪" & vbNewLine & "语文 80" & vbNewLine & _
        "数学 80" & vbNewLine & "英语 80" & vbNewLine & _
        "总分 240分" & vbNewLine & "平均分 80分" & vbNewLine
End Sub

请各位大侠试一下。
是不是在一行??? --------------------编程问答-------------------- upupup --------------------编程问答-------------------- VB常用值描述。 
VB CONSTANT VALUE DESCRIPTION 
VBCR Chr(13) Carriage return 
VBCrLf Chr(13) & Chr(10) Combined carriage return and line feed 
VBFormFeed Chr(12) Form feed 

CSDN表格表示太差。链接到原帖。
http://www.devguru.com/technologies/vbscript/quickref/stringcon.html --------------------编程问答-------------------- 看看哈  --------------------编程问答--------------------
引用 5 楼 ning1958 的回复:
Private Sub Form_Load()
 Me.Text1 = "姓名 王小虎" & vbNewLine & "语文 80" & vbNewLine & _
  "数学 80" & vbNewLine & "英语 80" & vbNewLine & _
  "总分 240分" & vbNewLine & ……


设Textbox的 multiline属性为true就可以了
补充:VB ,  基础类
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,