QA@IT
«回答へ戻る

syntax hilight用にvb.net を追加(小文字じゃないからだめだったのか)

5639
 * ユニコードキャラクタで置換する
 見た目重視の場合です。
 たとえば提示されたコードを以下のようにします。
-```
+```vb.net
 Dim ColumnName As String = New String("Test.1")
 ColumnName = ColumnName.Replace("."c, ChrW(&H2024)) 
 ```
 スラッシュも併せて置換する場合は
-```
+```vb.net
 Dim ColumnName As String = New String("Test/.1")
 ColumnName = ColumnName.Replace("."c, ChrW(&H2024)).Replace("/"c, ChrW(&H2044)) 
 ```
 となります。
 またこれは以下のように簡略することもできます(これは余談です)
-```
+```vb.net
 Dim ColumnName = "Test/.1".Replace("."c, ChrW(&H2024)).Replace("/"c, ChrW(&H2044)) 
 ```  
 この様にすれば一応見た目はピリオドのまま abcも表示させることができますが、
 問題があります。  
 `"Test.1"`と `"Test.1".Replace("."c, ChrW(&H2024))`は同一ではないということです
 つまり
-```
+```vb.net
 IF "Test.1" = "Test.1".Replace("."c, ChrW(&H2024)) Then
     ' 同一ではないのでここに入ることはありません。
 End IF

こんにちは、たしかにWPFのデータグリッドにおいて列名にピリオド(ドット)が含まれると表示されませんね。
私のVS2010でも再現しました。

原因としては、名前がXPATHとして評価されるため、XPATHで意味のある記号が含まれると困ったことになる、という具合の様です。同様にスラッシュ(/)を使った場合も同じようにabcが表示されませんでした。

対応策ですが、

  • 他の記号を用いる
    アンダースコア(_)を利用する分には問題ないようですので使える記号を利用するという手があるようです。

  • ユニコードキャラクタで置換する
    見た目重視の場合です。
    たとえば提示されたコードを以下のようにします。

    Dim ColumnName As String = New String("Test.1")
    ColumnName = ColumnName.Replace("."c, ChrW(&H2024)) 
    

    スラッシュも併せて置換する場合は

    Dim ColumnName As String = New String("Test/.1")
    ColumnName = ColumnName.Replace("."c, ChrW(&H2024)).Replace("/"c, ChrW(&H2044)) 
    

    となります。
    またこれは以下のように簡略することもできます(これは余談です)

    Dim ColumnName = "Test/.1".Replace("."c, ChrW(&H2024)).Replace("/"c, ChrW(&H2044)) 
    

    この様にすれば一応見た目はピリオドのまま abcも表示させることができますが、
    問題があります。

    "Test.1""Test.1".Replace("."c, ChrW(&H2024))は同一ではないということです
    つまり

    IF "Test.1" = "Test.1".Replace("."c, ChrW(&H2024)) Then
    ' 同一ではないのでここに入ることはありません。
    End IF
    

    ということです。比較の前にそろえてあげる必要が出てきます。

他にも解決策があるかもしれませんが、私が見つけたのは上記の2つでした。

こんにちは、たしかにWPFのデータグリッドにおいて列名にピリオド(ドット)が含まれると表示されませんね。
私のVS2010でも再現しました。

原因としては、名前がXPATHとして評価されるため、XPATHで意味のある記号が含まれると困ったことになる、という具合の様です。同様にスラッシュ(/)を使った場合も同じようにabcが表示されませんでした。

対応策ですが、
* 他の記号を用いる
アンダースコア(_)を利用する分には問題ないようですので使える記号を利用するという手があるようです。

* ユニコードキャラクタで置換する
見た目重視の場合です。
たとえば提示されたコードを以下のようにします。
```vb.net
Dim ColumnName As String = New String("Test.1")
ColumnName = ColumnName.Replace("."c, ChrW(&H2024)) 
```
スラッシュも併せて置換する場合は
```vb.net
Dim ColumnName As String = New String("Test/.1")
ColumnName = ColumnName.Replace("."c, ChrW(&H2024)).Replace("/"c, ChrW(&H2044)) 
```
となります。
またこれは以下のように簡略することもできます(これは余談です)
```vb.net
Dim ColumnName = "Test/.1".Replace("."c, ChrW(&H2024)).Replace("/"c, ChrW(&H2044)) 
```  
この様にすれば一応見た目はピリオドのまま abcも表示させることができますが、
問題があります。  
`"Test.1"`と `"Test.1".Replace("."c, ChrW(&H2024))`は同一ではないということです
つまり
```vb.net
IF "Test.1" = "Test.1".Replace("."c, ChrW(&H2024)) Then
    ' 同一ではないのでここに入ることはありません。
End IF
```
ということです。比較の前にそろえてあげる必要が出てきます。


他にも解決策があるかもしれませんが、私が見つけたのは上記の2つでした。

イコールが抜けてたので修正

5639
 となります。
 またこれは以下のように簡略することもできます(これは余談です)
 ```
-Dim ColumnName "Test/.1".Replace("."c, ChrW(&H2024)).Replace("/"c, ChrW(&H2044)) 
+Dim ColumnName = "Test/.1".Replace("."c, ChrW(&H2024)).Replace("/"c, ChrW(&H2044)) 
 ```  
 この様にすれば一応見た目はピリオドのまま abcも表示させることができますが、
 問題があります。  

こんにちは、たしかにWPFのデータグリッドにおいて列名にピリオド(ドット)が含まれると表示されませんね。
私のVS2010でも再現しました。

原因としては、名前がXPATHとして評価されるため、XPATHで意味のある記号が含まれると困ったことになる、という具合の様です。同様にスラッシュ(/)を使った場合も同じようにabcが表示されませんでした。

対応策ですが、

  • 他の記号を用いる
    アンダースコア(_)を利用する分には問題ないようですので使える記号を利用するという手があるようです。

  • ユニコードキャラクタで置換する
    見た目重視の場合です。
    たとえば提示されたコードを以下のようにします。

    Dim ColumnName As String = New String("Test.1")
    ColumnName = ColumnName.Replace("."c, ChrW(&H2024)) 
    

    スラッシュも併せて置換する場合は

    Dim ColumnName As String = New String("Test/.1")
    ColumnName = ColumnName.Replace("."c, ChrW(&H2024)).Replace("/"c, ChrW(&H2044)) 
    

    となります。
    またこれは以下のように簡略することもできます(これは余談です)

    Dim ColumnName = "Test/.1".Replace("."c, ChrW(&H2024)).Replace("/"c, ChrW(&H2044)) 
    

    この様にすれば一応見た目はピリオドのまま abcも表示させることができますが、
    問題があります。

    "Test.1""Test.1".Replace("."c, ChrW(&H2024))は同一ではないということです
    つまり

    IF "Test.1" = "Test.1".Replace("."c, ChrW(&H2024)) Then
    ' 同一ではないのでここに入ることはありません。
    End IF
    

    ということです。比較の前にそろえてあげる必要が出てきます。

他にも解決策があるかもしれませんが、私が見つけたのは上記の2つでした。

こんにちは、たしかにWPFのデータグリッドにおいて列名にピリオド(ドット)が含まれると表示されませんね。
私のVS2010でも再現しました。

原因としては、名前がXPATHとして評価されるため、XPATHで意味のある記号が含まれると困ったことになる、という具合の様です。同様にスラッシュ(/)を使った場合も同じようにabcが表示されませんでした。

対応策ですが、
* 他の記号を用いる
アンダースコア(_)を利用する分には問題ないようですので使える記号を利用するという手があるようです。

* ユニコードキャラクタで置換する
見た目重視の場合です。
たとえば提示されたコードを以下のようにします。
```
Dim ColumnName As String = New String("Test.1")
ColumnName = ColumnName.Replace("."c, ChrW(&H2024)) 
```
スラッシュも併せて置換する場合は
```
Dim ColumnName As String = New String("Test/.1")
ColumnName = ColumnName.Replace("."c, ChrW(&H2024)).Replace("/"c, ChrW(&H2044)) 
```
となります。
またこれは以下のように簡略することもできます(これは余談です)
```
Dim ColumnName = "Test/.1".Replace("."c, ChrW(&H2024)).Replace("/"c, ChrW(&H2044)) 
```  
この様にすれば一応見た目はピリオドのまま abcも表示させることができますが、
問題があります。  
`"Test.1"`と `"Test.1".Replace("."c, ChrW(&H2024))`は同一ではないということです
つまり
```
IF "Test.1" = "Test.1".Replace("."c, ChrW(&H2024)) Then
    ' 同一ではないのでここに入ることはありません。
End IF
```
ということです。比較の前にそろえてあげる必要が出てきます。


他にも解決策があるかもしれませんが、私が見つけたのは上記の2つでした。

見た目の調整

5639
 ColumnName = ColumnName.Replace("."c, ChrW(&H2024)).Replace("/"c, ChrW(&H2044)) 
 ```
 となります。
-
 またこれは以下のように簡略することもできます(これは余談です)
 ```
 Dim ColumnName "Test/.1".Replace("."c, ChrW(&H2024)).Replace("/"c, ChrW(&H2044)) 
-```
-
+```  
 この様にすれば一応見た目はピリオドのまま abcも表示させることができますが、
-問題があります。
-
+問題があります。  
 `"Test.1"`と `"Test.1".Replace("."c, ChrW(&H2024))`は同一ではないということです
 つまり
 ```

こんにちは、たしかにWPFのデータグリッドにおいて列名にピリオド(ドット)が含まれると表示されませんね。
私のVS2010でも再現しました。

原因としては、名前がXPATHとして評価されるため、XPATHで意味のある記号が含まれると困ったことになる、という具合の様です。同様にスラッシュ(/)を使った場合も同じようにabcが表示されませんでした。

対応策ですが、

  • 他の記号を用いる
    アンダースコア(_)を利用する分には問題ないようですので使える記号を利用するという手があるようです。

  • ユニコードキャラクタで置換する
    見た目重視の場合です。
    たとえば提示されたコードを以下のようにします。

    Dim ColumnName As String = New String("Test.1")
    ColumnName = ColumnName.Replace("."c, ChrW(&H2024)) 
    

    スラッシュも併せて置換する場合は

    Dim ColumnName As String = New String("Test/.1")
    ColumnName = ColumnName.Replace("."c, ChrW(&H2024)).Replace("/"c, ChrW(&H2044)) 
    

    となります。
    またこれは以下のように簡略することもできます(これは余談です)

    Dim ColumnName "Test/.1".Replace("."c, ChrW(&H2024)).Replace("/"c, ChrW(&H2044)) 
    

    この様にすれば一応見た目はピリオドのまま abcも表示させることができますが、
    問題があります。

    "Test.1""Test.1".Replace("."c, ChrW(&H2024))は同一ではないということです
    つまり

    IF "Test.1" = "Test.1".Replace("."c, ChrW(&H2024)) Then
    ' 同一ではないのでここに入ることはありません。
    End IF
    

    ということです。比較の前にそろえてあげる必要が出てきます。

他にも解決策があるかもしれませんが、私が見つけたのは上記の2つでした。

こんにちは、たしかにWPFのデータグリッドにおいて列名にピリオド(ドット)が含まれると表示されませんね。
私のVS2010でも再現しました。

原因としては、名前がXPATHとして評価されるため、XPATHで意味のある記号が含まれると困ったことになる、という具合の様です。同様にスラッシュ(/)を使った場合も同じようにabcが表示されませんでした。

対応策ですが、
* 他の記号を用いる
アンダースコア(_)を利用する分には問題ないようですので使える記号を利用するという手があるようです。

* ユニコードキャラクタで置換する
見た目重視の場合です。
たとえば提示されたコードを以下のようにします。
```
Dim ColumnName As String = New String("Test.1")
ColumnName = ColumnName.Replace("."c, ChrW(&H2024)) 
```
スラッシュも併せて置換する場合は
```
Dim ColumnName As String = New String("Test/.1")
ColumnName = ColumnName.Replace("."c, ChrW(&H2024)).Replace("/"c, ChrW(&H2044)) 
```
となります。
またこれは以下のように簡略することもできます(これは余談です)
```
Dim ColumnName "Test/.1".Replace("."c, ChrW(&H2024)).Replace("/"c, ChrW(&H2044)) 
```  
この様にすれば一応見た目はピリオドのまま abcも表示させることができますが、
問題があります。  
`"Test.1"`と `"Test.1".Replace("."c, ChrW(&H2024))`は同一ではないということです
つまり
```
IF "Test.1" = "Test.1".Replace("."c, ChrW(&H2024)) Then
    ' 同一ではないのでここに入ることはありません。
End IF
```
ということです。比較の前にそろえてあげる必要が出てきます。


他にも解決策があるかもしれませんが、私が見つけたのは上記の2つでした。

回答を投稿

こんにちは、たしかにWPFのデータグリッドにおいて列名にピリオド(ドット)が含まれると表示されませんね。
私のVS2010でも再現しました。

原因としては、名前がXPATHとして評価されるため、XPATHで意味のある記号が含まれると困ったことになる、という具合の様です。同様にスラッシュ(/)を使った場合も同じようにabcが表示されませんでした。

対応策ですが、

  • 他の記号を用いる
    アンダースコア(_)を利用する分には問題ないようですので使える記号を利用するという手があるようです。

  • ユニコードキャラクタで置換する
    見た目重視の場合です。
    たとえば提示されたコードを以下のようにします。

    Dim ColumnName As String = New String("Test.1")
    ColumnName = ColumnName.Replace("."c, ChrW(&H2024)) 
    

    スラッシュも併せて置換する場合は

    Dim ColumnName As String = New String("Test/.1")
    ColumnName = ColumnName.Replace("."c, ChrW(&H2024)).Replace("/"c, ChrW(&H2044)) 
    

    となります。

またこれは以下のように簡略することもできます(これは余談です)

Dim ColumnName "Test/.1".Replace("."c, ChrW(&H2024)).Replace("/"c, ChrW(&H2044)) 

この様にすれば一応見た目はピリオドのまま abcも表示させることができますが、
問題があります。

"Test.1""Test.1".Replace("."c, ChrW(&H2024))は同一ではないということです
つまり

IF "Test.1" = "Test.1".Replace("."c, ChrW(&H2024)) Then
    ' 同一ではないのでここに入ることはありません。
End IF

ということです。比較の前にそろえてあげる必要が出てきます。

他にも解決策があるかもしれませんが、私が見つけたのは上記の2つでした。

こんにちは、たしかにWPFのデータグリッドにおいて列名にピリオド(ドット)が含まれると表示されませんね。
私のVS2010でも再現しました。

原因としては、名前がXPATHとして評価されるため、XPATHで意味のある記号が含まれると困ったことになる、という具合の様です。同様にスラッシュ(/)を使った場合も同じようにabcが表示されませんでした。

対応策ですが、
* 他の記号を用いる
アンダースコア(_)を利用する分には問題ないようですので使える記号を利用するという手があるようです。

* ユニコードキャラクタで置換する
見た目重視の場合です。
たとえば提示されたコードを以下のようにします。
```
Dim ColumnName As String = New String("Test.1")
ColumnName = ColumnName.Replace("."c, ChrW(&H2024)) 
```
スラッシュも併せて置換する場合は
```
Dim ColumnName As String = New String("Test/.1")
ColumnName = ColumnName.Replace("."c, ChrW(&H2024)).Replace("/"c, ChrW(&H2044)) 
```
となります。

またこれは以下のように簡略することもできます(これは余談です)
```
Dim ColumnName "Test/.1".Replace("."c, ChrW(&H2024)).Replace("/"c, ChrW(&H2044)) 
```

この様にすれば一応見た目はピリオドのまま abcも表示させることができますが、
問題があります。

`"Test.1"`と `"Test.1".Replace("."c, ChrW(&H2024))`は同一ではないということです
つまり
```
IF "Test.1" = "Test.1".Replace("."c, ChrW(&H2024)) Then
    ' 同一ではないのでここに入ることはありません。
End IF
```
ということです。比較の前にそろえてあげる必要が出てきます。


他にも解決策があるかもしれませんが、私が見つけたのは上記の2つでした。