Public Function Convert_ToCrLf(FILENAME As String)
    '将使用0d0a重构文本文件即回车换行
    Dim src As String
    Open FILENAME For Input As #1
'    Input #1, src
    src = StrConv(InputB(LOF(1), 1), vbUnicode)
    Close #1
    src = Replace(src, vbCrLf, vbLf)
    src = Replace(src, vbCr, vbLf)
    src = Replace(src, vbLf, vbCrLf)
    Open FILENAME For Output As #1
    Print #1, src
    Close #1
End FunctionPublic Function Convert_ToLf(FILENAME As String)
    '将使用0a重构文本文件即换行
    Dim src As String
    Open FILENAME For Input As #1
'    Input #1, src
    src = StrConv(InputB(LOF(1), 1), vbUnicode)
    Close #1
    src = Replace(src, vbCrLf, vbLf)
    src = Replace(src, vbCr, vbLf)
    Open FILENAME For Output As #1
    Print #1, src
    Close #1
End Function这两个函数。为什么写入文件后居然居然在文件尾给加了一个0d0a
怎么办!!!!!

解决方案 »

  1.   

    是的 windows的文本文件0d0a 与 unix 文本文件 0a 转换
    回车换行问题.print # 1 写入到文件的时候会自动加上一个 0d0a 一个空行。怎么办!!
      

  2.   

    Public Function Convert_ToCrLf(FILENAME As String)
        '将使用0d0a重构文本文件即回车换行
        Dim src As String
        Open FILENAME For Input As #1
    '    Input #1, src
        src = StrConv(InputB(LOF(1), 1), vbUnicode)
        Close #1    src = Replace(src, vbLf, vbCrLf)
        Open FILENAME For Output As #1
        Print #1, src
        Close #1
    End Function
    Public Function Convert_ToLf(FILENAME As String)
        '将使用0a重构文本文件即换行
        Dim src As String
        Open FILENAME For Input As #1
    '    Input #1, src
        src = StrConv(InputB(LOF(1), 1), vbUnicode)
        Close #1
        src = Replace(src, vbCrLf, vbLf)
        Open FILENAME For Output As #1
        Print #1, src
        Close #1
    End Function
      

  3.   

    !!!!print # 1 写入到文件的时候会自动加上一个 0d0a 一个空行。没有明白我的意思。那几个替换是没有问题的。现在改为
        Open FILENAME For Binary As #1
        Put #1, , src
    '    Open FILENAME For Output As #1
    '    Print #1, src
        Close #1
    但还是有部分数据不对。极郁闷....等待高手给个提示。
      

  4.   

    For Binary 有什么用
    和数据格式没有关系的你步进跟踪吧看看文件最后的那个crlf是那个语句完成的然后加个判断过滤掉就可以了
      

  5.   

    晕菜.楼上的。是print 增加的 0d0a 怎么跟踪
    用put出错还没有想到问题出在哪里.
      

  6.   

    你line input一行行试
    我觉得你那里一点意义都没有    src = Replace(src, vbCrLf, vbLf)
        src = Replace(src, vbCr, vbLf)
        src = Replace(src, vbLf, vbCrLf)
    第2个把cr转成lf 3又把lf转成crlf那不最后结果就是cr转成crlf一样的干什么要这么写
      

  7.   

    五角大哥.
    如果文件本来就是0d0a的。如果直接 0a 换0d0a程序不就出现了0d0a0aline input 更是每行都给你加一个 0d0a
    大哥你测一下好吗?
      

  8.   

    晕...
    unix 的换行就是0a
    就是将windows的0d0a换成0a
    程序是两个函数。可以用程序直接生成呀...
    Convert_ToLf 就是生成unix识别的格式
    Convert_ToCRLf 就是生成windows识别的格式
      

  9.   


    怎么不早说
    简单呵呵
    Print #1, src;
    后面加个分号就不会再后面加0d0a
      

  10.   

    Print #1, src;   '不换行如果没有这种分号,则强制换行,也就是加上回车换行符 &H0D0A。
    顺便,如果
        Print #1, src,
    则加上一个制表符 &H09
      

  11.   

    晕,看到了;是不换行
    错过了。烦死我了.
    put 的问题也找到了.是因为原文件的大小不变。而转到0a的时候文件变小。故文件尾问是原文件的内容
      

  12.   

    '*************************************************************************
    '**函 数 名:Convert_ToCrLf
    '**输    入:FILENAME(String) -
    '**输    出:无
    '**功能描述:将使用0d0a重构文本文件即回车换行
    '**全局变量:
    '**调用模块:
    '**作    者:侯叔敏
    '**日    期:2006-07-07 15:03:22
    '**修 改 人:
    '**日    期:
    '**版    本:V1.0.0
    '*************************************************************************
    Public Function Convert_ToCrLf(FILENAME As String)
        Dim src As String
        Open FILENAME For Input As #1
        src = StrConv(InputB(LOF(1), 1), vbUnicode)
        Close #1
        src = Replace(src, vbCrLf, vbLf)
        src = Replace(src, vbCr, vbLf)
        src = Replace(src, vbLf, vbCrLf)
        Open FILENAME For Output As #1
        Print #1, src;
        Close #1
    End Function'*************************************************************************
    '**函 数 名:Convert_ToLf
    '**输    入:FILENAME(String) -
    '**输    出:无
    '**功能描述:将使用0a重构文本文件即换行
    '**全局变量:
    '**调用模块:
    '**作    者:侯叔敏
    '**日    期:2006-07-07 15:03:24
    '**修 改 人:
    '**日    期:
    '**版    本:V1.0.0
    '*************************************************************************
    Public Function Convert_ToLf(FILENAME As String)
        Dim src As String
        Open FILENAME For Input As #1
        src = StrConv(InputB(LOF(1), 1), vbUnicode)
        Close #1
        src = Replace(src, vbCr, "")
        Open FILENAME For Output As #1
        Print #1, src;
        Close #1
    End Function
    最终代码。少了文件存在的判断...有兴趣自已增加一下
      

  13.   

    这两个函数。为什么写入文件后居然居然在文件尾给加了一个0d0a
    怎么办!!!!!俺觉着说的够清楚了.直接就说的是0d0a问题呀。你你你绕我半天。陪我时间.哈哈哈....To:of123() 星星太少了。继续努力....嘎嘎嘎