| 网站首页 | 业界新闻 | 群组 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 314 人关注过本帖
标题:用什么语句来调用函数?
只看楼主 收藏
ictest
Rank: 2
等 级:论坛游民
帖 子:214
专家分:77
注 册:2010-2-17
结帖率:73.85%
  已结贴   问题点数:20  回复次数:4   
用什么语句来调用函数?
C盘下有一个N.txt文件,UNIX格式,想要转换成DOS格式。在网上找到一个转换函数,不知道怎么调用,语句格式是什么样的,求教。

最好能做一个Form传上来供学习。谢谢!

函数如下:

程序代码:
'模块功能: 转换 Unix 和 DOS 文本格式
Public Enum UnixDosConvertType
    Dos2Unix = 0
    Unix2Dos = 1
End Enum

Public Function ConvertUnixOrDosFile(ByVal SourceFile As String, ByVal TargetFile As String, ByVal ConvertType As UnixDosConvertType, Optional DeleteSourceFile As Boolean = False) As Boolean
    On Error GoTo Z
    Dim OpenFileNum As Integer
    Dim SaveFileNum As Integer
    Dim FileBuffer As String
    OpenFileNum = FreeFile
    If OpenFileNum > 0 Then
       Open SourceFile For Input As #OpenFileNum                    'For Input
            SaveFileNum = FreeFile
            If SaveFileNum > 0 Then
               Open TargetFile For Binary As #SaveFileNum           'For Binary
                    Do While Not EOF(OpenFileNum)
                       Line Input #OpenFileNum, FileBuffer          '若为 Unix 格式,则整个文件会被一次性读取
                       If ConvertType = Dos2Unix Then
                          If InStr(FileBuffer, Chr(10)) = 0 Then    '考虑到源文件可能是 Unix 格式
                             FileBuffer = FileBuffer & Chr(10)
                          End If
                       ElseIf ConvertType = Unix2Dos Then
                          If InStr(FileBuffer, Chr(10)) > 0 Then
                             FileBuffer = Replace(FileBuffer, Chr(10), vbCrLf)
                          ElseIf InStr(FileBuffer, vbCrLf) = 0 Then '考虑到源文件可能是 DOS 格式
                             FileBuffer = FileBuffer & vbCrLf
                          End If
                       End If
                       Put #SaveFileNum, , FileBuffer
                    Loop
               Close #SaveFileNum
            End If
        Close #OpenFileNum
        If DeleteSourceFile = True Then Kill SourceFile
        ConvertUnixOrDosFile = True
    End If
    Exit Function
Z:
    If SaveFileNum > 0 Then Close #SaveFileNum
    If OpenFileNum > 0 Then Close #OpenFileNum
    ConvertUnixOrDosFile = False
    Exit Function
 End Function


由于我不会调用上面的函数,故此不知道这个函数转换的速度如何,以及是否能转换这个解压缩后五十几兆的UNIX格式的TXT文件,
我需要速度较快并且能转换较大的TXT文件的转换方式,如果上面这个函数速度较慢或不能转换这个解压缩后五十几兆的UNIX格式的TXT文件,求教各位版主或路过的各位帮助!
附件: 您没有浏览附件的权限,请 登录注册
2018-01-12 09:18
suzhanpeng
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:45
专家分:168
注 册:2016-9-28
  得分:10 
ConvertUnixOrDosFile(ByVal SourceFile As String, ByVal TargetFile As String, ByVal ConvertType As UnixDosConvertType, Optional DeleteSourceFile As Boolean = False) As Boolean
'SourceFile    要转换的txt文件
'TargetFile     转换后的文件
'ConvertType     要转换的txt文件的格式(Dos2Unix和Unix2Dos两种)
DeleteSourceFile = False (True)   是否删除原文件,默认是不删除。

举例:ConvertUnixOrDosFile 原文件,新文件,Dos2Unix,False
2018-01-12 10:40
ictest
Rank: 2
等 级:论坛游民
帖 子:214
专家分:77
注 册:2010-2-17
  得分:0 
首先谢谢suzhanpeng,根据您的教导,可以使用了。
但不知道哪里的问题,五十几兆的原UNIX的TXT文件,只转出了大约二十几兆的新TXT文件就不再转下去了,直接从程序里跳出。

请问suzhanpeng或其他诸位,有办法解决么?

文件测试可使用首贴的附件。

谢谢各位!
2018-01-12 11:18
wds1
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:20
帖 子:212
专家分:1148
注 册:2016-3-10
  得分:10 
Ultraedit 直接具有unix->DOS。而且速度很快。
2018-01-12 12:33
ictest
Rank: 2
等 级:论坛游民
帖 子:214
专家分:77
注 册:2010-2-17
  得分:0 
以下是引用wds1在2018-1-12 12:33:50的发言:

Ultraedit 直接具有unix->DOS。而且速度很快。


嗯嗯,是的。但是我开发的软件需要读取TXT文件,我想吧UNIX转DOS功能集成化到我的软件中,总不能让别人使用时,告诉他先用Ultraedit转DOS,然后再使用我的软件吧?觉得有些麻烦了。

这里先谢谢wds1了。
2018-01-12 12:48







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

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