2013-03-18 12 views
1

Мне нужно заменить двойные двойные кавычки, но не заменять поля пустыми значениями.Заменить двойные двойные кавычки

Вопрос: Как заменить двойные двойные кавычки и не заменять пустые столбцы?


Оригинальная линия

"" ДАЧА "", "PENNINGTON, Нью-Джерси", "", "123456789"

Ожидаемый результат

"ДАЧА", "PENNINGTON, Нью-Джерси" , «», «123456789»


Я создал класс, который будет делать трюк, но он заменяет все двойные двойные кавычки, включая пустое поле:


Мой результат код

"ДАЧА", "PENNINGTON, Нью-Джерси", "" 123456789"

, как вы можете видеть мой код фиксирует КОТТЕДЖ, но убивает пустой столбец после, 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 

End Class

+0

сначала получить пустую строку и заменить его каким-то странным строку сказать, «! ~!% $ @ % $ @% $% ", и после удаления двойной кавычки верните ее обратно. Будет ли это делать? – David

+0

рассмотрите метод 'String.Replace' [MSDN VB.NET String.Replace] (http://msdn.microsoft.com/en-us/library/fk49wtc1.aspx?cs-save-lang=1&cs-lang = vb # code-snippet-2) – MethodMan

+0

Дэвид, это сработало .... спасибо –

ответ

1
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