| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4350 人关注过本帖
标题:求个VB思路
只看楼主 加入收藏
yuma
Rank: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1934
专家分:3012
注 册:2009-12-22
收藏
得分:0 
排序不能把变量名搞丢了,是个难题。

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2022-11-12 18:42
jklqwe111
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:35
帖 子:336
专家分:1135
注 册:2014-4-13
收藏
得分:0 
提取出用于比较的键值,只对键值做处理,原来的值管它干嘛,原样写入文件就行。
2022-11-12 21:54
yuma
Rank: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1934
专家分:3012
注 册:2009-12-22
收藏
得分:0 
回复 32楼 jklqwe111
排序之后,原来的变量和排序后的值照样对应不上。

排序后,值被赋值给了新的变量。

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2022-11-13 18:22
cwa9958
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:76
帖 子:279
专家分:1367
注 册:2006-6-25
收藏
得分:0 
回复 33楼 yuma
排序,只是对数据进行重新排列,不关变量名的事。
变量名只是一个代号,用完了就没用了。
你要把数据值与名字对应起来,跟着排序,这个就不是普通的排序了,比如数据库,有不同的字段,对一个字段排序,其余的字段值也会跟着变化顺序。
你要的数据排序,一个变量对应的就不只是一个数据了。就要用type语句定义自定义数据类型,参加排序的就是一组数据了。
比如定义以下数据:
Type 人员   '创建用户自定义的类型。
   ID As Integer   
   姓名 As String * 20
   年龄 As integer
   电话 As string * 11
End Type
然后用ID进行排序,或者用年龄排序,这样名称就不会乱了。
2022-11-22 09:55
yuma
Rank: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1934
专家分:3012
注 册:2009-12-22
收藏
得分:0 
回复 34楼 cwa9958
Private Type 人员   '创建用户自定义的类型。
   ID As Integer
   姓名 As String * 20
   年龄 As Integer
   电话 As String * 11
   End Type
   Dim a() As 人员

Private Sub Form_Load()

   '-------------------
   '数据如下:
   '张三 27 13555555555
   '李四 23 18777777777
   '王二 36 19099999999
   '-------------------
   

   '张三 27 13555555555
   ReDim Preserve a(1)
   a(1).ID = 1
   a(1).姓名 = "张三"
   a(1).年龄 = 27
   a(1).电话 = "13555555555"

   '李四 23 18777777777
   ReDim Preserve a(2)
   a(2).ID = 2
   a(2).姓名 = "李四"
   a(2).年龄 = 23
   a(2).电话 = "18777777777"
   
   
   '王二 36 19099999999
   ReDim Preserve a(3)
   a(3).ID = 3
   a(3).姓名 = "王二"
   a(3).年龄 = 36
   a(3).电话 = "18777777777"
   
   'Debug.Print a(1).年龄
   'Debug.Print a(2).年龄
   'Debug.Print a(3).年龄
   
   
   '-------------------------
   '冒泡排序,升序排列算法
   '-------------------------
   
   '定义变量
    Dim arr1
   '数组赋值
    arr1 = Array(a(1).年龄, a(2).年龄, a(3).年龄)
    For m = 0 To UBound(arr1)
      For i = m + 1 To UBound(arr1)
          k = arr1(m)
          If arr1(m) > arr1(i) Then
               arr1(m) = arr1(i)
              arr1(i) = k
         End If
     Next
     MsgBox arr1(m)
    Next

End Sub


年龄是排序出来了,但是却对应不上姓名了,如何根据年龄输出姓名呢?求教。

[此贴子已经被作者于2022-11-23 16:43编辑过]


心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2022-11-23 16:41
jklqwe111
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:35
帖 子:336
专家分:1135
注 册:2014-4-13
收藏
得分:0 
程序代码:

 arr1 = Array(a(1).年龄, a(2).年龄, a(3).年龄)
    For m = 0 To UBound(arr1)
      For i = m + 1 To UBound(arr1)
          k = arr1(m)
          If arr1(m) > arr1(i) Then
               arr1(m) = arr1(i)
              arr1(i) = k
         End If
     Next
     MsgBox arr1(m)
    Next


年龄放错位置了
程序代码:

 arr1 = Array(a(1), a(2), a(3))
    For m = 0 To UBound(arr1)
      For i = m + 1 To UBound(arr1)
          k = arr1(m)
          If arr1(m).年龄 > arr1(i).年龄 Then
               arr1(m) = arr1(i)
              arr1(i) = k
         End If
     Next
     MsgBox arr1(m)
    Next


特意的抛弃原值进行排序很没有意思
2022-11-23 18:48
yuma
Rank: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1934
专家分:3012
注 册:2009-12-22
收藏
得分:0 
回复 36楼 jklqwe111
编译错误

图片附件: 游客没有浏览图片的权限,请 登录注册

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2022-11-23 20:13
jklqwe111
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:35
帖 子:336
专家分:1135
注 册:2014-4-13
收藏
得分:0 
我的意思是 arr1 = Array(a(1).年龄, a(2).年龄, a(3).年龄)这句代码抛弃了原来的数据的信息,以后对对数组的排序变得毫无意义,arr1 = Array(a(1), a(2), a(3))就是要保留原数据,当然还有许多方法保留原数据的信息,至于编译错误,你还是自己寻找原因加以解决吧。
2022-11-23 21:21
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
   Dim a() As 人员
    arr1 = Array(。。。)
a() 已是数组,为啥还要重定义为数组呢?
直接对 A排序不行吗?  重定义为 数组后,原数组又没有排序,那有什么意义。




授人于鱼,不如授人于渔
早已停用QQ了
2022-11-24 09:20
yuma
Rank: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1934
专家分:3012
注 册:2009-12-22
收藏
得分:0 
回复 39楼 风吹过b
B哥能不能给点代码,脑子一团糟理不清逻辑。

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2022-11-24 10:19
快速回复:求个VB思路
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026835 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved