当前位置:编程学习 > VB >>

vb按行逐个读取txt数据 并作为记录保存到ACESS的代码

第一次发帖 
我想从txt中读取数据作为记录保存到acess中 请各位大虾帮忙下,本人程序新手。
txt文本格式如下:
1968   1   1 
    67    47    56    45    50    63    60     0    47    54
    41    27    51    65    56    81    61    57    34    47
    67    93    59    63   108    79    67    78    71   114
    59    85   148   122   152   134   122   126   125   107
   102    71    65    96   106   103   107   143    78   108
   117    90    67    74    78   129    66    63    72   105
   134    24    31    24     5    41    33    38    44    39
    51    50    53    64    72     1    45    38    72    51
    32   125    55    29    62   110   114
1968   1   2 
    61    22    47    39    49    60    54     0    58    75
    59    52    68   117    83    99    84    56    50    66
    97   149   128   109   143   151   124   120   131   127
   128    98   135   122   140   125   104   129   120   112
    90    78    67    85   102   109    82   134    81    95
   147    83    45    60    75   135    68    55    55   107
   124    36    11    40    22    64    40    55    45    53
    51    64    75    92    74    34    36    75    74    62
    45   141    57    33    89   110   127
......
预期保存在ACESS中的记录格式是1968-1-1 67  1站
                             1968-1-2 61  1站
                                   ....
                             1968-1-1 47  2站
                             1968-1-2 22  2站
                                 ....

请问如何实现啊 ?
--------------------编程问答-------------------- 没看懂什么数据格式,写入Access的方法就是用Insert Into 表名 (字段1,字段2,字段3...) Values (值1,值2,值3,...) --------------------编程问答-------------------- 写入我没问题 我就是想问下如何以空格或者回车符为间隔读完整个文件 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 3 楼 zsl79812 的回复:
Private Function ReadTXT(TXTPath As String) As String
    Open TXTPath For Input As #1
    Do While Not EOF(1)
    Line Input #1, TXTCon
        Str = Str & TXTCon & vbCrLf
    Loop
   ……


正解,不过记得要关掉文件的。 --------------------编程问答--------------------

    Dim fs, f, s
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.OpenTextFile(sFileName, 1)
        s = f.readall '将整个文件内容读入 s
    f.Close: Set f = Nothing: Set fs = Nothing
    
    Dim LineText, sWord
    For Each LineTxt In Split(s, vbcdrf)
        For Each sWord In Split(LineText, " ")
            'LineText 为每一行的文本,如“67 47 56 45 50 63 60 0 47 54”
            'sWord 为每一行中用空格分开的数字字符,如“67”,“47”,“56”等
            '
            '此处添加写入过程
            '
        Next sWord
    Next LineText
--------------------编程问答-------------------- 学习了,我是菜鸟 --------------------编程问答--------------------
引用 5 楼 z_wenqian 的回复:
VB code

    Dim fs, f, s
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.OpenTextFile(sFileName, 1)
        s = f.readall '将整个文件内容读入 s
    f.Close: Set f = Nothing: Set fs = ……


感谢 但是请教下 我的每行数据的间隔无规律 有时候间隔一个空格 有时候是三个空格 这样怎么以空格为间隔能读取数据啊 我不太会用split 函数啊 ,也请高人指教。 --------------------编程问答-------------------- 加循环,先将两个以上的空格替换为一个,再用Split


    Dim fs, f, s
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.OpenTextFile(sFileName, 1)
        s = f.readall '将整个文件内容读入 s
    f.Close: Set f = Nothing: Set fs = Nothing

    '将两个以上的空格替换成一个空格
    While InStr(1, s, "  ") > 0
        s = Replace(s, "  ", " ")
    Wend

    Dim LineText, sWord
    For Each LineTxt In Split(s, vbcdrf)
        For Each sWord In Split(LineText, " ")
            'LineText 为每一行的文本,如“67 47 56 45 50 63 60 0 47 54”
            'sWord 为每一行中用空格分开的数字字符,如“67”,“47”,“56”等
            '
            '此处添加写入过程
            '
        Next sWord
    Next LineText
--------------------编程问答-------------------- 多谢多谢 我后来没用编程的方法 直接导入excel处理了  累死个人了  --------------------编程问答-------------------- 那还不结帖?安慰下那些个劳工…… --------------------编程问答-------------------- 做个书签!以后说不定有用!
补充:VB ,  基础类
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,