回 帖 发 新 帖 刷新版面

主题:如何随机读取*.txt中的数据?

软件目的:
假设某个*.txt文本文件中有100条数据,用软件随机读取其中的50条并存入新的*.txt文件中。
我是VB初学,在网上找了很多都没有这方面的。特前来求助各位大侠。

回复列表 (共1个回复)

沙发

如果你的文件中的每条数据的长度是固定的,那么就好计算读取的位置;否则,只能一行一行读取,然后在读取的所有行中随机取50条。
[code=c]
    Const REC_LEN As Integer = 36  '一条记录的长度
    Dim strFile   As String
    Dim fNo       As Integer
    Dim i         As Integer
    Dim p         As Integer
    Dim strData() As String * REC_LEN
    
    strFile = "e:\test.txt"  '文件路径
    
    ReDim strData(49) As String * REC_LEN
    
    fNo = FreeFile()
    Open strFile For Random As fNo Len = REC_LEN

    For i = 0 To 49
        p = Rnd() * 100
        Get #fNo, p, strData(i)
        Debug.Print strData(i)
    Next

    Close #fNo

或者用binary的方式
    Dim strFile   As String
    Dim fNo       As Integer
    Dim i         As Integer
    Dim p         As Integer
    Dim strData() As String
    Dim bytArr()  As Byte
    Const REC_LEN As Integer = 36
    
    strFile = "e:\test.txt"
    
    ReDim strData(49) As String
    ReDim bytArr(REC_LEN - 1) As Byte
    
    fNo = FreeFile()
    Open strFile For Binary As fNo

    For i = 0 To 49
        p = Rnd() * 100
        Get #fNo, REC_LEN * p + 1, bytArr()
        strData(i) = StrConv(bytArr(), vbUnicode)
        Debug.Print strData(i)
    Next

    Close #fNo
[/code]

我来回复

您尚未登录,请登录后再回复。点此登录或注册