2

二重引用符を置き換える必要がありますが、フィールドを空の値に置き換える必要はありません。

質問:空の列を置き換えずに二重二重引用符を置き換えるにはどうすればよいですか?


オリジナルライン

"" COTTAGE ""、 "PENNINGTON、NJ"、 ""、 "123456789"

期待される結果

"COTTAGE"、 "PENNINGTON、NJ"、 ""、 "123456789"


トリックを実行するクラスを作成しましたが、空のフィールドを含むすべての二重引用符を置き換えます。


私のコードの結果

"COTTAGE"、 "PENNINGTON、NJ"、 "、" 123456789 "

ご覧のとおり、私のコードはCOTTAGEを修正しますが、NJの後に空の列を削除して、単一引用符を付けます。


パブリッククラスFixFileErrors

Public Shared Sub RemoveDoubleDoubleQuotes(ByVal FilePathandName As String)

    Dim OriginalFile, RevisedFile, LineofText As String

    OriginalFile = FilePathandName
    RevisedFile = Replace(OriginalFile, ".txt", "revised.txt")


    Dim srFileReader As System.IO.StreamReader
    srFileReader = System.IO.File.OpenText(OriginalFile)
    'Dim srFileWritter As System.IO.StreamWriter
    Dim srFileWritter As New System.IO.StreamWriter(RevisedFile)


    Do Until srFileReader.EndOfStream
        LineofText = srFileReader.ReadLine
        LineofText = ReplaceDoubleDoubleQuotes(LineofText)
        srFileWritter.WriteLine(LineofText)
        LineofText = Nothing
    Loop

End Sub

Public Shared Function ReplaceDoubleDoubleQuotes(ByVal Line As String) As String
    Dim NewLine As String


    Dim strFindText As String = Chr(34) & Chr(34)
    Dim strReplaceText As String = Chr(34)

    NewLine = Replace(Line, strFindText, strReplaceText)


    Return NewLine

End Function

エンドクラス

4

1 に答える 1

2
Public Shared Function ReplaceDoubleDoubleQuotes(ByVal Line As String) As String
    Dim NewLine As String

    Dim doubleDoubleQuotes As String = Chr(34) & Chr(34)
    Dim doubleQuote As String = Chr(34)

    'Your original replacement
    NewLine = Replace(Line, doubleDoubleQuotes, doubleQuote)

    'Replacement to fix double-quotes between commas
    NewLine = Replace(NewLine, "," & doubleQuote & ",", "," & doubleDoubleQuotes & ",")

    Return NewLine

End Function
于 2013-03-18T18:02:31.420 に答える