2004-07-13 08:57:00,11111,11111,CM,DELIVRD,SMT
2004-07-13 08:57:06,22222,22222,CM,<NULL>,SMT
2004-07-13 08:57:09,33333,33333,CM,DELIVRD,SMT
2004-07-13 08:57:12,44444,44444,CM,DELIVRD,SMT
2004-07-13 08:57:15,55555,55555,CM,DELIVRD,SMT
2004-07-13 08:57:21,66666,66666,CM,DELIVRD,SMT
2004-07-13 08:57:24,77777,77777,CM,DELIVRD,SMT以上文本AA.20040715 不是DOS格式的文本文件,请问如何转化成DOS文件?谢谢!请问一下错在哪里?谢谢
Sub ConvertFile(File$)
Dim f%, ff%, t As String * 2048, ct&, x%, nxt%   
   f% = FreeFile
   Open File$ For Binary As #f%
      ff% = FreeFile
      Open File$ & "OK" For Output As #ff%
         Do While Not EOF(f%)
            Get #f%, , t$
            x% = 1
            Do While x% < Len(t$)
               ct& = ct& + 1
               x% = InStr(x%, t$, ChrB$(10))
               If x% = 0 Then Exit Do
               Print #ff%, Left$(t$, x% - 1)
               t$ = Right$(t$, Len(t$) - x%)
            Loop
         Loop
      Close #ff%
   Close #f%Exit_Sub:   Exit SubFile_Err:  
   Resume Exit_SubEnd Sub

解决方案 »

  1.   

    用UCDOS生成EXE
      不过...要自己重输!
      

  2.   

    全读进来,然后Replace(s, Chr(&H10), vbNewLine)搞定。
      

  3.   

    UNIX是用/N换行的,WIN是用Chr(10)&Chr(13)换行。
      

  4.   

    //全读进来,然后Replace(s, Chr(&H10), vbNewLine)??
    应该是Replace(s, Chr(10), vbNewLine)吧
      

  5.   

    呵呵,楼上正确。偶错了~~~~~~本来想Chr(&H0A)的,结果@#)(*$^(@#^,没办法,最近老是晕   @_@
      

  6.   

    vb里面可用用vbcrlf常数来表示dos的换行符啊
    Replace(s, Chr(10), vbcrlf)