如何对一个文本文件按某个字排序?

bitfzc 2004-04-29 11:49:50
例:
1
名称:苹果
地点:第二门市部

2
名称:香蕉
地点:第一门市部

3
。。。

需要通过对每一单元第二行的第五个字来排序,结果会将2的内容调到1的上面。
谢谢!
...全文
214 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
luoxiaoxiang 2004-04-30
  • 打赏
  • 举报
回复
读取关键字,然后转换为数字型,再用排序。
不知对不对,供楼主参考一下。
lsftest 2004-04-30
  • 打赏
  • 举报
回复
建议把这个文本文件在excel里打开,用vba进行处理。。。
bitfzc 2004-04-30
  • 打赏
  • 举报
回复
按数字大小,也就是一到六这么几个字(一到六的Ascii码也是按顺序的吧?)

因为数据库是保密的,别人从数据库里提出数据给我生成一个文本,
但他的数据库没有进行排序.
flc 2004-04-30
  • 打赏
  • 举报
回复
学习
SaySorry 2004-04-30
  • 打赏
  • 举报
回复
northwolves 2004-04-30
  • 打赏
  • 举报
回复
"d:\yyy.txt" outputs:

2
名称:香蕉
地点:第一门市部

1
名称:苹果
地点:第二门市部

5
名称:苹果
地点:第三门市部

3
名称:桃子
地点:第四门市部

4
名称:梨
地点:第五门市部

6
名称:香蕉
地点:第六门市部

And you may let your listbox's visible as false.
northwolves 2004-04-30
  • 打赏
  • 举报
回复
suppose your "d:\xxx.txt" as this:

1
名称:苹果
地点:第二门市部

2
名称:香蕉
地点:第一门市部

3
名称:桃子
地点:第四门市部

4
名称:梨
地点:第五门市部

5
名称:苹果
地点:第三门市部

6
名称:香蕉
地点:第六门市部


then add a listbox(sort=true),a commandbutton and copy this code to your form1:


Private Sub Command1_Click()
Dim i As Long, mybyte() As Byte, temp, a() As String
Open "d:\xxx.txt" For Binary As #1
ReDim mybyte(LOF(1))
Get #1, , mybyte
Close #1
temp = Split(StrConv(mybyte, vbUnicode), vbCrLf)
Erase mybyte


ReDim a(UBound(temp) \ 4)
For i = 0 To UBound(temp) Step 4
a(i \ 4) = temp(i) & "*" & temp(i + 1) & "*" & temp(i + 2) & "**"
Next

Set temp = Nothing
For i = 0 To UBound(a)
List1.AddItem InStr("一二三四五六", Mid(Split(a(i), "*")(2), 5, 1)) & a(i)
Next

For i = 0 To List1.ListCount - 1
a(i) = Replace(Right(List1.List(i), Len(List1.List(i)) - 1), "*", vbCrLf)
Next



Open "d:\yyy.txt" For Binary As #1
Put #1, , Join(a, "")
Close #1
MsgBox Join(a, vbCrLf), 0, "ok"

End Sub
northwolves 2004-04-29
  • 打赏
  • 举报
回复
按数字大小还是ASCII码的大小?

为什么不用数据库??

7,762

社区成员

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

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