vb 数组多重排序求助!

来源:百度知道 编辑:UC知道 时间:2024/09/28 09:23:08
既然进来了,希望别闲内容多,帮助别人 也是自己在巩固学习.

按行读取 c:\1.txt

txt 内容如下↓

253
655
864
856
412
214
323
332
.................. 这里行数不定

要实现目的:
先将每行的数字进行从小到大排序,再将所有行的3位数字比较,
取出从多到少重复出现的前18位 3位号码.

我的思路:
1.取得txt的所有行数
2.再取出每行的3位数字分别存入数组a(1)a(2)a(3) 后从小到大排序
3.再将每行排序好的数连起来存入数组b(1 to h) h为行数
4.最后再将数组b进行比较,取出从多到少重复出现的前18位 3位号码.
5.再显示在 label1(1 to 18) 里

'''''''''''我不懒 我至少写代码了,只不过无法继续''''''''
For i = 1 To Len(l1) 'l1为 txt内容
If Mid(l1, i, 1) = Chr(10) Then
h = h + 1 '取得总行数
End If
Next i

t = Split(l1, vbCrLf)

Dim pxhf()

For i = 1 To h
jlz = t(i - 1)
jlz2 = Mid(jlz, 1) '取得每个行的3位数值
pxhf(i) = jlz2 '每3个数 存入1个数组
Next i

For i = 1 To h
pxh(1) = Mid(pxhf(i), 1, 1) '分别取出每行的 3位数字

刚好回答了一个类似的,这个也写写吧

新建工程,添加一个TextBox控件(MultiLine属性设为True、ScrollBars属性设为2)、一个CommandButton控件,名称均默认,添加以下代码

Option Explicit

Private Sub Command1_Click()
Dim TestR() As String, TestN() As Integer, i As Integer, j As Integer, n As Integer

Dim tmpA() As Integer, ii As Integer, jj As Integer, nn As Integer, tmp As Integer, tmpStr As String

n = -1

Open "txtfile.txt" For Input As #1'打开文件

While Not EOF(1)'循环读取文件中所有的数据
Line Input #1, tmpStr'取一行数据放入tmpStr

nn = Len(tmpStr) - 1
ReDim tmpA(nn) As Integer

'把取出的数据放入一个数组
For ii = 0 To nn
tmpA(ii) = Mid(tmpStr, ii + 1, 1)
Next

'对数组进行冒泡排序
For ii = nn To 1 Step -1
For jj = 0 To ii - 1

If tmpA(jj) > tmpA(jj + 1) Then