设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 4718|回复: 16
打印 上一主题 下一主题

[模块/函数] 请哪位大侠分析一下这样的文本文件转换问题!!

[复制链接]
跳转到指定楼层
1#
发表于 2010-12-22 18:17:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我写了一个转换的代码,转换附件中的文本文件,但运行到REPLACE时出现:运行时错误‘5’,无效的过程调用或参数。我是一次性转换很多个这样的文件,其他都可以,就是这一个很麻烦,是不是这个文本文件中出现特殊字符?
代码:
    Dim b As String
    Dim x As String
    Open Me![text1] For Input As #1 '源文件
    Open Me![text1] & ".txt" For Append As #2
    Do Until EOF(1)
      Line Input #1, b '逐行读入源文件
          x = Replace(b, Chr(10) & "", Chr(13) & Chr(10))
         Print #2, x
     Loop
    Close #1
    Close #2
    MsgBox "文件转换完毕!!!"

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
2#
发表于 2010-12-22 18:38:19 | 只看该作者
fyupeng 发表于 2010-12-22 18:17
我写了一个转换的代码,转换附件中的文本文件,但运行到REPLACE时出现:运行时错误‘5’,无效的过程调用或 ...

附件对吗?
3#
 楼主| 发表于 2010-12-22 18:43:54 | 只看该作者
附件对的,就是要把回车转换成换行加回车,文本就整齐了
4#
发表于 2010-12-22 18:51:51 | 只看该作者
本帖最后由 todaynew 于 2010-12-22 18:52 编辑
fyupeng 发表于 2010-12-22 18:43
附件对的,就是要把回车转换成换行加回车,文本就整齐了


不会吧?我找不到Me![text1]这个控件,帮我看看它在哪里呢?。呵呵
5#
 楼主| 发表于 2010-12-22 19:01:56 | 只看该作者
本帖最后由 fyupeng 于 2010-12-22 19:03 编辑

这是我在窗体上的文本框【text1】,输入文本文件的路径,再加个命令按钮的Private Sub Command0_Click()
太急了,没写清楚,版主见谅
代码可以改成
    Open “D:\往来账.txt” For Input As #1 '源文件
    Open  "D:\往来账.txt.txt" For Append As #2

6#
 楼主| 发表于 2010-12-22 19:15:32 | 只看该作者
正在研究todaynew版主的Word阅读器,呵呵。我有想过把文本文件后缀改为.doc,然后调用word,再saveas "D:\往来账.txt.txt" ,3。当然这样麻烦多了。但几十个文件转换都可以,就这个文件是刺头。
7#
 楼主| 发表于 2010-12-22 19:37:36 | 只看该作者
todaynew 发表于 2010-12-22 18:51
不会吧?我找不到Me![text1]这个控件,帮我看看它在哪里呢?。呵呵

这个是可以转换和已经转换好的文本文件。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
8#
发表于 2010-12-22 20:26:22 | 只看该作者
fyupeng 发表于 2010-12-22 19:37
这个是可以转换和已经转换好的文本文件。

一定要用VBA来导入导出么?我觉得Excel也很不错啊。处理一份大概也就几十秒到一分钟的事情吧。嫌麻烦的话还可以录制一个宏来处理的噢,详见附件。复制粘贴后,再点击工具\宏\执行就好了。

当然,比起VBA来,自然没那么厉害,不可能一次处理几十份。但如果执行宏的话,也相当给力了:打开\复制文本\粘贴\执行宏,然后再复制粘贴到文本上,一份转换完应该也就十几秒吧?

现在可以公布下偶的做法了,有兴趣的话,可以试着做做:

1、全选复制文本,粘贴到Excel的A1单元格,选中A列,点击数据\分列,选择:固定宽度,注意把箭头放好,然后选中所有列,在右上角中改为文本(默认为常规),点击下一步执行。分列至此结束。
2、接下来就简单多了,全选工作表,复制,新建一个txt文件,粘贴,收工。

顺便说下,执行宏时,当前工作表应该是sheet1,也就是说,如果不激活sheet1将会出错。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
9#
 楼主| 发表于 2010-12-22 20:29:51 | 只看该作者
本帖最后由 fyupeng 于 2010-12-22 20:31 编辑

一定要用VBA来导入导出。因为转换只是第一步,我下面还要把文本文件每条记录导入数据库,进行统计分析的,每月几万条,execl不行的。几十个文件都可以用VBA,就这一个,晕死。

点击这里给我发消息

10#
发表于 2010-12-22 20:46:33 | 只看该作者
因为文本文件中有日文字符: ,在ACCESS中很多函数对日文字符都有问题,如 debug.Print "ゼ123" Like "1" 这样也出错。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-16 19:36 , Processed in 0.096811 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表