提取分割textbox中指定内容

qqasp112 2010-04-23 01:38:41
窗体中有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分
...全文
250 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ning1958 2010-05-11
  • 打赏
  • 举报
回复
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
guojl 2010-05-11
  • 打赏
  • 举报
回复
upupup
jhone99 2010-05-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ning1958 的回复:]
Private Sub Form_Load()
Me.Text1 = "姓名 王小虎" & vbNewLine & "语文 80" & vbNewLine & _
"数学 80" & vbNewLine & "英语 80" & vbNewLine & _
"总分 240分" & vbNewLine & ……
[/Quote]

设Textbox的 multiline属性为true就可以了
nono1122 2010-05-11
  • 打赏
  • 举报
回复
看看哈
ning1958 2010-05-10
  • 打赏
  • 举报
回复
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

请各位大侠试一下。
是不是在一行???
chinaboyzyq 2010-04-23
  • 打赏
  • 举报
回复

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

bcrun 2010-04-23
  • 打赏
  • 举报
回复
没明白这个向上向下是啥意思:
text2中输入:4 (提取text4中所有 "总分 240分" 向上四行)
text3中输入:2 (提取text4中所有 "总分 240分" 向下二行)
jabulin 2010-04-23
  • 打赏
  • 举报
回复
建议将内容提取出来,放到二维数组中,然后再对数组按你的逻辑进行循环判断

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧