| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4352 人关注过本帖
标题:求个VB思路
只看楼主 加入收藏
yuma
Rank: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1934
专家分:3012
注 册:2009-12-22
收藏
得分:0 
以下是引用kings12333在2022-11-6 20:48:46的发言:

这是一维数组,但多维的我就不会怎么表达了,像我给的那个附档


张三,23,男,中国公民,广东省
李四,12,女,美国公民,河南省
王五,68,女,中国公民,河北省

逐行读取,切分为一维数组,每行的内容分别对应 a(0)、a(1)、a(2)、a(3)、a(4),赋值给B版所说结构体数组即可。

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2022-11-07 17:48
kings12333
Rank: 2
等 级:论坛游民
帖 子:114
专家分:66
注 册:2012-11-29
收藏
得分:0 
回复 21楼 yuma
大哥,数组不会呀,麻烦你个例子参考一下
2022-11-07 19:03
cwa9958
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:76
帖 子:279
专家分:1367
注 册:2006-6-25
收藏
得分:0 
回复 22楼 kings12333
给一个例子

Private Sub Command1_Click()
    Dim 数组() As String '定义一个动态数组
    Dim i As Integer
   
    Open App.Path & "/文件.txt" For Input As 1#   '打开输入文件
    Do While Not EOF(1)
        ReDim Preserve 数组(i)  '分配数组,保留原来的数据
        Line Input #1, 数组(i)  '读入数据
        i = i + 1
    Loop
    For i = 0 To UBound(数组)
        Print 数组(i)
    Next
    Close #1    '关闭文件
   
End Sub

2022-11-08 10:16
kings12333
Rank: 2
等 级:论坛游民
帖 子:114
专家分:66
注 册:2012-11-29
收藏
得分:0 
回复 23楼 cwa9958
2022-11-08 18:52
kings12333
Rank: 2
等 级:论坛游民
帖 子:114
专家分:66
注 册:2012-11-29
收藏
得分:0 
回复 23楼 cwa9958
版主给的那个排序的套不上啊..你帮忙一起套一下怎么个排序吧兄弟
2022-11-09 10:05
jklqwe111
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:35
帖 子:336
专家分:1135
注 册:2014-4-13
收藏
得分:0 

供参考
Public Sub sort(sName As String, limit As String, dName As String, Lst As ListBox)

  'sName 原文件名
  'dName 存放结果文件名
  'limit 原文件分隔符,注意中英文标点
  'Lst 列表框,借助其排序功能,要在设计状态设置 sorted = true 如果数据量很大,运行缓慢,就要重新排序方法了
  Dim str  As String
    Dim age As Long
   
    Dim k As Long
    Dim i As Long
   
    i = 0
    Open sName For Input As 1#
    Do While Not EOF(1)
        
        Line Input #1, str
        k = InStr(str, limit)
        age = Val(Mid(str, k + 1, Len(str)))
        Lst.AddItem age & i & "," & str
        i = i + 1
    Loop
   
    Close #1
    Open dName For Output As 2#
    For i = 0 To Lst.ListCount - 1
      str = Lst.List(i)
      k = InStr(str, ",")
   
      Print #2, Mid(str, k + 1, Len(str))
      Next
    Close #2
     Lst.Clear
End Sub
2022-11-09 15:19
kings12333
Rank: 2
等 级:论坛游民
帖 子:114
专家分:66
注 册:2012-11-29
收藏
得分:0 
回复 26楼 jklqwe111
这个方法也不错喔,谢谢,如果排序方式要倒序排怎么改?
2022-11-09 21:45
kings12333
Rank: 2
等 级:论坛游民
帖 子:114
专家分:66
注 册:2012-11-29
收藏
得分:0 
回复 26楼 jklqwe111
针对负数这种方式就不行啊
2022-11-09 21:46
jklqwe111
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:35
帖 子:336
专家分:1135
注 册:2014-4-13
收藏
得分:0 
倒序,正序只是个方向问题,在向文件写入时,列表框从最大号向小的方向循环输出就可以了,年龄会有负数吗,如果非要有负数参与,进行简单的变换就可以实现。如果不等式a<b 成立 那么a+k <b+k 同样成立,根据这个道理,把所有数值都加上一个较大的数,使得所有数值为正数,但数据的大小关系并没有改变,再进行排序就行了
2022-11-09 22:25
kings12333
Rank: 2
等 级:论坛游民
帖 子:114
专家分:66
注 册:2012-11-29
收藏
得分:0 
回复 29楼 jklqwe111
2022-11-09 23:08
快速回复:求个VB思路
数据加载中...
 
   



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

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