| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 720 人关注过本帖
标题:问个文档格式的小问题~
取消只看楼主 加入收藏
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
结帖率:97.66%
收藏
已结贴  问题点数:20 回复次数:3 
问个文档格式的小问题~
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册



如何使用VB6的代码将UNIX的格式档案~转成DOS的格式档案~
搜索更多相关主题的帖子: 文档 
2011-05-18 18:13
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
找到答案了~

第一种最没效率的~用UltraEdit的手动转~太不自动所以不合格~

第二种稍微没效率的~写VB的代码自动转~但是档案太大可能引发内存直接爆掉~一定要改写法~切割档案分批转~但没效率又麻烦~所以目前暂时不予采用~
http://www.
程序代码:
Sub TransFileFormat(FileName As String)
    Dim n As Integer, i As Long, total As Long
    Dim InString(60000) As String
    
    total = 0
    n = FreeFile
    Open FileName For Input As #n
    Do While Not EOF(n)
     total = total + 1
     Line Input #n, InString(total)
     InString(total) = Replace(InString(total), Chr(10), vbCrLf)
    Loop
    Close #n
    
    n = FreeFile
    Open FileName For Output As #n
    For i = 1 To total
     Print #n, InString(i)
    Next
    Close #n
     
End Sub


第三种应该很有效率的~听说C内建函式可以转过去而且很快~只要改成DLL档~再用VB中去呼叫来用就行了~这我有经验~嘿嘿~
明天有机会再试了~

不要選我當版主
2011-05-18 23:52
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
以下是引用Artless在2011-5-18 23:30:59的发言:

我知道~麻烦就在这~断行符号不同~

不要選我當版主
2011-05-18 23:53
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
以下是引用风吹过b在2011-5-19 20:21:04的发言:

确定是 UNIX 文档的,
用二进制打开文件,
一次读一个字节,如果是换行符,就写DOS 下的换行符进去,否则就原样写进去。

这样也很快的。也不怎么吃内存的。因为不需要把整个文档全部放到内存里。


那我就纳闷了~这样不会误判吗~还是说的UNIX的换行符号是唯一的~不会和别的字搞再一起~
之前写STDF档解析时(16->ASCII)~就遇过卡一个条件会误判~要
if(XXX(2Bytes) and YYY(2Bytes)) then    '卡2种条件
......
才能避免误判?

不知道你知道我再说什么吗?

不要選我當版主
2011-05-19 21:42
快速回复:问个文档格式的小问题~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026987 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved