在一个空的文本文件上书写会在VS2008中添加其他未知字符

时间:2018-12-06 10:05:53

标签: visual-studio-2008

我具有此功能,可以在Windows Mobile中获取数据并将其放在文本文件中,这样我就可以从系统中获取数据。

Function isDOWNLOADED() As Boolean
    isDOWNLOADED = False
    Dim lCtr As Long
    Dim iFields As Integer
    Dim strFldValues As String
    Dim OutputTXTFileName As String = GstrPCtxtOutputPath & "Daily_Transactions.txt"
    Dim strORControls As String
    strORControls = Fld2Str(LookUp("ORNUmber + '~' + lasttrxsaved + '~' + UserCode", "MAS_USERS", "BillMonth <> 'ANY'"))
    Try
        da = New clsDataAccess

        dt = da.GetData("IsBilled, AccountNo, ConsName, address, meterno, " & _
                        "ConsumerType, prevreading, presreading, usage, billdate, " & _
                        "billamount, remarks, arrears, OtherCharges, BillMOnth, " & _
                        "PenaltyAmt, DueDate, DeviceUser, Surcharge, PCAAmount, " & _
                        "ORNumber, CollDate, AmountCollected, NUmberOfPrint, " & _
                        "SeqNo, RemarksExplanation, TrxStart, TrxEnd, timestamp ", _
                        "MAS_Consumers", "AccountNo <> 'Manny Aparente' order by AccountNo ")
        If dt.Rows.Count > 0 Then

            If File.Exists(OutputTXTFileName) Then

            End If

            Dim fs As New FileStream(OutputTXTFileName, FileMode.Create)
            Dim w As New BinaryWriter(fs, System.Text.Encoding.ASCII)

            For lCtr = 0 To dt.Rows.Count - 1
                strFldValues = ""
                dr = dt.Rows(lCtr)

                If dr(0) = 1 Or dr(0) = True Then
                    strFldValues = "1~" & strORControls
                Else
                    strFldValues = "0~" & strORControls
                End If

                For iFields = 1 To 28

                    strFldValues = strFldValues & "~" & Replace(dr(iFields).ToString, "~", "")

                Next iFields

                lblStatus.Text = (lCtr + 1) & " > " & dr(1) & " > " & dr(2)
                lblStatus.Refresh()

                w.Write(strFldValues & vbNewLine)


            Next lCtr
            w.Close()
            fs.Close()
            fs = New FileStream(OutputTXTFileName, FileMode.Open, FileAccess.Read)

            isDOWNLOADED = True

        Else
            MsgBox("No Records found!")
        End If

    Catch ex As Exception
        MsgBox(ex.Message, MsgBoxStyle.Information, Me.Text)
    Finally
        da.Dispose()
        dt.Dispose()
    End Try

End Function

但是输出总是这样。

ú1~P10301~1/6/10 4:35:10 AM~SJWS5~zem824157~MURATA, ZENNITH~BLOCK 6 LOT 6 CDSJ PH 1
~173955~1~1361.00~1400~39~11/27/2018~633.00~100.72% Above Average~0.00~~Nov 2018
~0~12/11/18~SJWS5~0~0~~~0~0~0~~1/6/10 4:30:07 AM~1/6/10 4:30:29 AM~1/6/2010 4:30:29 AM

第一个字符串的输出为“ú1”,仅应写入“ 1”。 我已经搜索过了,但无济于事,我无法提出任何解决方案。我为什么要添加未知字符?

0 个答案:

没有答案