C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.2201 の関連記事表示

<< 0 >>
■2207  Re[1]: (C#.NET)エスケープシーケンスについて
□投稿者/ trapemiya -(2005/12/29(Thu) 09:56:58)
>

    分類:[C#] 

    Regex.Unescape メソッドを調べてみて下さい。
記事No.2201 のレス /0過去ログ2より / 関連記事表示
削除チェック/

■2205  Re[1]: (C#.NET)エスケープシーケンスについて
□投稿者/ bell -(2005/12/28(Wed) 11:50:04)

    分類:[C#] 

    エスケープシークエンスの考え方が間違っています。

    No2201に返信(とおりすがりさんの記事)
    >  [string abc = "C:\Program Files";]のように記述すると
    >  構文エラーが発生するため、
    >  [string abc = @"C:\ProgramFiles";]のように
    >  エスケープシーケンス文字として読ませるよう記述すると思います。

    逆です。文字列に"\"があった場合、
    その直後の1文字とあわせて"エスケープシークエンス1文字"として解釈します。
    (\n、\t、etc...)
    文字列内で単純に文字"\"を使いたい場合、"\\"と記述する必要があります。
    つまり
    "C:\Program Files"という文字列は
    "C:"という文字列、
    "\P"というエスケープシークエンス、
    "rogram Files"という文字列、
    この3つでできていることになります。
    \Pというエスケープシクエンスは存在していないため、
    構文エラーが発生してしまいます。
    ("\r"も"\n"も両方ともエスケープシークエンスのため構文エラーにはなりません)

    @を文字列の前につけた場合には、
    直後の文字列内の"\"を自動的に"\\"として扱うため、
    @"C:\Program Files"という文字列は"C:\\Program Files"と等価になるわけです。

    @"\"から"\"への変換処理ですが、
    エスケープシークエンスは"\"+後ろの1文字という形をとるため、
    "\\"の後ろの1文字を参照して対応したエスケープシークエンスに置き換える、
    という動きになると思うので一筋縄ではいかないと思います。

    単純に@"\〜"を"\〜"にReplaceメソッドにて置き換えてしまうのはどうでしょうか?
    お困りの件は
    @"\r"("\\r")を\r",@"\n"("\\n")を"\n"にReplaceしてあげれば実現できると思います。

記事No.2201 のレス /0過去ログ2より / 関連記事表示
削除チェック/

■2202  Re[1]: (C#.NET)エスケープシーケンスについて
□投稿者/ Blue -(2005/12/26(Mon) 10:43:02)

    分類:[C#] 

    とりあえず、MSDN 2-2-4  定数表記
    http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpdnbcsharp/htm/csharp2-2.asp

    >  ところが、何故か改行コードは[string abc = "\r\n";]と記述しても
    > 構文エラーが発生しません。もちろん[string def = @"\r\n";]としても
    > 構文エラーは発生しないのですが、この両者、[if (abc == def)]のように
    > 比較してみると、どうやら文字コード自体は違う文字列として扱われる
    > ようなのです。
    def = @"\r\n"; は def = "\\r\\n"; という風になり、エスケープシーケンスとして扱われません。


記事No.2201 のレス /0過去ログ2より / 関連記事表示
削除チェック/

■2201  (C#.NET)エスケープシーケンスについて
□投稿者/ とおりすがり -(2005/12/26(Mon) 08:56:14)

    分類:[C#] 


    分類:[C#] 

    いつも参考にさせていただいています。
    C#.NETでの円マークの扱いについての質問です。
    (以下、半角円マーク「¥」は「\」と表示されますのでご留意下さい)

     [string abc = "C:\Program Files";]のように記述すると
     構文エラーが発生するため、
     [string abc = @"C:\ProgramFiles";]のように
     エスケープシーケンス文字として読ませるよう記述すると思います。

     ところが、何故か改行コードは[string abc = "\r\n";]と記述しても
     構文エラーが発生しません。もちろん[string def = @"\r\n";]としても
     構文エラーは発生しないのですが、この両者、[if (abc == def)]のように
     比較してみると、どうやら文字コード自体は違う文字列として扱われる
     ようなのです。

     質問-------------------------------------------------------
     「エスケープシーケンスって何?」というところが
     よく分かっていないのが現状ですが、以下、質問させてください。
      質問1)[@]付きの文字列と[@]無しの文字列、何が違うのか?
      質問2)[@]付きの文字列を[@]無しの文字列に変換できないか?
     -----------------------------------------------------------

     困っている事-----------------------------------------------
     XMLファイルから[\r\n](改行コード)付きの文字列を取得し
     それをグレープシティー社の[ElTabelle(エルタブレ)]にセット
     すると改行されず[\r\n]が文字列としてそのまま表示された。

     原因は、文字列[\r\n]をC#.NETが「エスケープシーケンス文字」
     として文字列を[@]付きにセットしていたため。
     [@"\r\n"]→["\r\n"]に変換しElTabelleに入れると改行出来た。
     以上のことから、[@"\"]→["\"]に変換するメソッドを作成したい。
     -----------------------------------------------------------

    以上、長文になりましたがよろしくお願い致します。

親記事 /0過去ログ2より / 関連記事表示
削除チェック/

■2201  Re[1]: TableAdapter拡張をVB.NETと同じにするには?
□投稿者/ 未記入 -(2007/03/26(Mon) 10:10:41)
    No2200 (C#恐怖症 さん) に返信
    > といった感じで、Handlesを使用してあげれば良いのですが、
    > これをC#で同じようにするにはどうしたら良いのでしょうか?

    C#にはHandlesキーワードにあたる構文は用意されていません。
    画面デザイナのイベント(雷マークの)から生成するか、手動でIniitalizeComponentにイベントを追加してください。
記事No.2200 のレス /過去ログ11より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -