エスケープされていないピリオドがたくさんある場合に適合をスローする Web サイトにアップロードする CSV ファイルを作成しています。
どのフィールドをエスケープする必要があるかを見つけようとして、正規表現を少し学習するのが楽しくて頭が痛くなりましたが、これは無意味ですか? すべてのフィールドを二重引用符で囲んで処理しない理由はありますか?
やり過ぎのように思えますが、各文字列を検索するのはやり過ぎかもしれません。
これが私の機能です:
Private Sub WriteToCSVFile(ByVal s As String(,), ByVal sFileName As String)
Dim sb As New System.Text.StringBuilder
For i As Integer = 0 To s.GetUpperBound(0)
For j As Integer = 0 To s.GetUpperBound(1)
If Regex.Match(s(i, j), "^[\w ]*$").Success Then
sb.Append(s(i, j) & IIf(j = s.GetUpperBound(1), "", ","))
Else
sb.Append("""" & s(i, j) & IIf(j = s.GetUpperBound(1), """", ""","))
End If
Next
sb.AppendLine()
Next
System.IO.File.WriteAllText(Application.StartupPath & "\" & sFileName, sb.ToString)
End Sub