标题:用什么语句来调用函数?
只看楼主
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:325
专家分:114
注 册:2010-2-17
结帖率:69.81%
已结贴  问题点数: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文件,求教各位版主或路过的各位帮助!
N.rar (163.89 KB)
搜索更多相关主题的帖子: 函数 格式 转换 If Then 
2018-01-12 09:18
suzhanpeng
Rank: 4
等 级:业余侠客
威 望:7
帖 子:72
专家分:248
注 册: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: 3Rank: 3
等 级:论坛游侠
帖 子:325
专家分:114
注 册:2010-2-17
得分:0 
首先谢谢suzhanpeng,根据您的教导,可以使用了。
但不知道哪里的问题,五十几兆的原UNIX的TXT文件,只转出了大约二十几兆的新TXT文件就不再转下去了,直接从程序里跳出。

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

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

谢谢各位!
2018-01-12 11:18
wds1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:49
帖 子:393
专家分:2025
注 册:2016-3-10
得分:10 
Ultraedit 直接具有unix->DOS。而且速度很快。
2018-01-12 12:33
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:325
专家分:114
注 册: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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-484185-1-1.html




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

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