一个文本里面有固定书写格式,怎么读取显示在列表?

小泽zz 2012-07-22 05:13:15
一个TXT文本,内容格式如下 (重庆时时彩的开奖号码)

我想把里面的 5个开奖号码,算出 和值,并显示在列表里,和值大于或等于23,属“大”,小于23属“小”,

然后如果连续出现 3期 大,或者连续出现3期小,就标识出来“大”,“小”那2个字显示为 黄色

如果连续4期 大,或者连续4期 小,就把那“大”,“小”2个字显示为“绿色”,

如果 连续 5期 大,或者5期 小,就把 大 小2个字显示为 红色 (如果6期,7期,8期都是大……都显示为红色)

比如 9,9,7,3,4 和值为 32,

就显示为 9,9,7,3,4 32 大

假如开奖号码出现3次 和值 大

9,9,7,3,4 32 大
9,9,7,3,5 33 大
9,9,7,3,6 34 大

就把这里的 大(连续小也如此) 都显示为 黄色

如果开奖号码如
9,9,7,3,4 32 大
9,9,7,3,5 33 大
9,9,7,3,6 34 大
9,9,7,3,7 35 大

就把这里的 大,都显示为 绿色

9,9,7,3,4 32 大
9,9,7,3,5 33 大
9,9,7,3,6 34 大
9,9,7,3,7 35 大

如果连续等于或者超过5期,就都显示为 红色···


---------------------------------下面是文本格式,
20120722-023 9,9,7,3,4
20120722-022 7,5,9,1,3
20120722-021 0,2,3,2,8
20120722-020 3,6,5,2,2
20120722-019 3,1,8,0,8
20120722-018 7,0,3,8,7
20120722-017 7,1,2,5,0
20120722-016 1,5,1,2,2
20120722-015 7,6,1,4,6
20120722-014 3,3,5,4,5
20120722-013 8,5,0,8,8
20120722-012 0,8,8,8,1
20120722-011 9,7,0,4,5
20120722-010 2,2,8,8,1
20120722-009 2,0,9,6,7
20120722-008 3,3,5,6,4
20120722-007 7,1,8,2,2
20120722-006 3,2,9,1,2
20120722-005 0,8,4,4,3
20120722-004 7,0,7,3,8
20120722-003 2,8,4,5,3
20120722-002 2,7,3,5,7
20120722-001 6,4,8,4,1
20120721-120 2,3,9,1,8
...全文
84 点赞 收藏 4
写回复
4 条回复
zydscaline 2012年08月01日
这东东应该简单,算法很简单,就是OLE的显示问题,这东东我没摸过,不好说
回复 点赞
twohorses 2012年08月01日
[Quote=引用 3 楼 的回复:]
Private Sub Form_Load()
Dim i As Long, strLine As String
Dim strField() As String, strNumbers() As String
Dim n As Long

With MSFlexGrid1
.Cols = 3
.Rows = 1
.FixedCols = 0
.FixedRo……
[/Quote]
回复 点赞
of123 2012年08月01日
Private Sub Form_Load()
Dim i As Long, strLine As String
Dim strField() As String, strNumbers() As String
Dim n As Long

With MSFlexGrid1
.Cols = 3
.Rows = 1
.FixedCols = 0
.FixedRows = 0
.GridLines = flexGridNone
.ColWidth(2) = 340
.ColWidth(0) = (.Width - 700) / 2
.ColWidth(1) = (.Width - 700) / 2
.ColAlignment(0) = 0
.ColAlignment(1) = 0
.ScrollBars = flexScrollBarVertical

Open "d:/test/lotto.txt" For Input As #1
Do Until EOF(1)
Line Input #1, strLine
strField = Split(strLine, Space(1))
If UBound(strField) = 1 Then
strNumbers = Split(strField(1), ",")
If UBound(strNumbers) = 4 Then
n = 0
For i = 0 To 4
n = n + Val(strNumbers(i))
Next i
.AddItem Replace(strLine, Space(1), vbTab) & vbTab & IIf(n > 22, "´ó", "С")
End If
End If
Loop
Close #1
.RemoveItem 0

.Col = 2
For i = 0 To .Rows - 3
myloop:
If i < .Rows - 4 Then
If .TextMatrix(i, 2) = .TextMatrix(i + 1, 2) And .TextMatrix(i, 2) = .TextMatrix(i + 2, 2) And _
.TextMatrix(i, 2) = .TextMatrix(i + 3, 2) And .TextMatrix(i, 2) = .TextMatrix(i + 4, 2) Then

For n = 0 To 4
.Row = i + n
.CellForeColor = vbRed
Next n

i = i + 5
Do Until i >= .Rows Or .TextMatrix(i, 2) <> .TextMatrix(i - 1, 2)
.Row = i
.CellForeColor = vbRed
i = i + 1
Loop
GoTo myloop
End If
End If

If i < .Rows - 3 Then
If .TextMatrix(i, 2) = .TextMatrix(i + 1, 2) And .TextMatrix(i, 2) = .TextMatrix(i + 2, 2) And _
.TextMatrix(i, 2) = .TextMatrix(i + 3, 2) Then

For n = 0 To 3
.Row = i + n
.CellForeColor = vbGreen
Next n

i = i + 4
GoTo myloop
End If
End If

If i < .Rows - 2 Then
If .TextMatrix(i, 2) = .TextMatrix(i + 1, 2) And .TextMatrix(i, 2) = .TextMatrix(i + 2, 2) Then

For n = 0 To 2
.Row = i + n
.CellForeColor = vbYellow
Next n

i = i + 3
GoTo myloop
End If
End If

Next i
End With
回复 点赞
of123 2012年08月01日

使用 MSFlexGrid,每一个单元格的颜色都可以单独设置。
回复 点赞
发动态
发帖子
VB基础类
创建于2007-09-28

2748

社区成员

19.7w+

社区内容

VB 基础类
社区公告
暂无公告