Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

非表格式的文本文件读取方法

gaoyunpeng  发表于:2017-12-12 09:05:48  
复制

遇到非二维表的文本文件,想将数据读取并进行二维表转换,有类似的事例吗?

文本文件式样


说明:

00001 可以理解为头文件

00002~00017可以理解为明细文件(00017的下一行记录是下一个头文件,行记录00001)

头文件与明细文件都有固定的位数控制记录。

站点里有没有类似的处理方法,共享一下吧。



 

Top
chinasa 发表于:2017-12-12 11:41:37

需要告诉你关键节点,还是需要完全做好?读取文本文件是是否会弄?



chinasa 发表于:2017-12-12 12:07:29

ediwjm = "d:\abc.txt"


Dim edict
Close #1
Open ediwjm For Input As #1

 

Line Input #1, edict


Do While Not EOF(1)
    Line Input #1, edict
    If Mid(edict, 1, 5) = "00001" Then
    AAA = Trim(Mid(edict, 6, 16))
    AAA2 = Trim(Mid(edict, 17, 10))
    Line Input #1, edict
    End If

    If Mid(edict, 1, 5) = "00002" Then
    BBB = Trim(Mid(edict, 8, 5))
    Line Input #1, edict
    End If
   
    If Mid(edict, 1, 5) = "00003" Then
    CCC = Trim(Mid(edict, 8, 4))
    Line Input #1, edict
    End If
'在中间继续增加00004-----00016的语句。

    If Mid(edict, 1, 5) = "00017" Then
    DDD = Trim(Mid(edict, 8, 3))
    MsgBox AAA & " //  " & BBB & "  //  " & CCC & "  //  " & DDD

    End If


Loop



chinasa 发表于:2017-12-12 12:09:39
如果想要应用,需要增加很多判断语句,否则一旦格式稍有不同,则全错了。并且要处理此类文件,应该有该EDI的平台文件,这样才能知道怎样循环以及那些记录为必输项。

gaoyunpeng 发表于:2017-12-12 14:09:51

大神,虽然看不太懂,但我已经认为是最佳答案了。

我去查一下EDI这个东西吧,之前没有过相关概念。

非常感谢提供方向。



chinasa 发表于:2017-12-12 15:04:04

把你的文本文件放到D盘,文件名叫ABC.TXT。在ACCESS中的窗体中添加一个按钮,按钮的单击事件中把上述代码复制进去。保存后点下这个按钮看有什么反应。

 



总记录:5篇  页次:1/1 9 1 :