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

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

C# と VB.NET の入門サイト

Re[5]: C#における全角文字の検索方法


(過去ログ 56 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■31872 / inTopicNo.1)  C#における全角文字の検索方法
  
□投稿者/ OROCHI (1回)-(2009/01/29(Thu) 17:22:55)

分類:[C#] 

Windows XP
Visual studio 2008

こんにちは、現在タイトルにも書きましたように、C#を用いてテキストファイル内にある「(全角鍵括弧)を検索するプログラムを組んでいるのですが、いい方法がわかりません

たとえばIndexOf("「")と書くと、エラー(-1)が出るからです

対処法ご存知な方、教えていただけないでしょうか?
引用返信 編集キー/
■31873 / inTopicNo.2)  Re[1]: C#における全角文字の検索方法
□投稿者/ επιστημη (1608回)-(2009/01/29(Thu) 17:28:16)
επιστημη さんの Web サイト
2009/01/29(Thu) 17:28:34 編集(投稿者)
> たとえばIndexOf("「")と書くと、エラー(-1)が出るからです

class Program {
  public static void Main() {
    string str = "合言葉は「わんくま」";
    int result = str.IndexOf('「'); // ← single-quoteでくくるべし。
    System.Console.WriteLine("隊長、{0} 番目に「があります!", result);
  }
}

引用返信 編集キー/
■31877 / inTopicNo.3)  Re[2]: C#における全角文字の検索方法
□投稿者/ OROCHI (3回)-(2009/01/29(Thu) 17:44:23)
ありがとうございます。ただ、ソース内に対象の文字列がある場合はいいのですが、テキストファイルから呼び出そうとするとやはり-1を返します(この目的を最初に説明するべきでした、すみません)
こちらの場合は対処法がございますでしょうか?

テキストの中身
テスト:「・・・」

ソース
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ConsoleApplication1
{
  class Program
  {
    static void Main(string[] args)
    {
      string line_OR = ""; // ファイルから読み出した文字列
      // 対象のファイルを開く
      using (StreamReader r = new StreamReader(@"C:\Documents and Settings\test3.txt"))
      { // 対象の文字列があるかどうか確認する
        while ((line_OR = r.ReadLine()) != null) // 1行ずつ読み出し。
        {
int result = line_OR.IndexOf('「');
System.Console.WriteLine("隊長、{0} 番目に「があります!", result);
}
}
}
}
引用返信 編集キー/
■31878 / inTopicNo.4)  Re[3]: C#における全角文字の検索方法
□投稿者/ επιστημη (1609回)-(2009/01/29(Thu) 17:53:32)
επιστημη さんの Web サイト
> テキストファイルから呼び出そうとするとやはり-1を返します

そのテキストファイル、UTF-8になってないんじゃねぇの?
shift_jis なら

× new StreamReader(@"C:\Documents and Settings\test3.txt")
○ new StreamReader(@"C:\Documents and Settings\test3.txt", Encoding.GetEncoding("shift_jis"))
引用返信 編集キー/
■31879 / inTopicNo.5)  Re[4]: C#における全角文字の検索方法
□投稿者/ OROCHI (4回)-(2009/01/29(Thu) 17:54:42)
No31878 (επιστημη さん) に返信
>>テキストファイルから呼び出そうとするとやはり-1を返します
>
> そのテキストファイル、UTF-8になってないんじゃねぇの?
> shift_jis なら
>
> × new StreamReader(@"C:\Documents and Settings\test3.txt")
> ○ new StreamReader(@"C:\Documents and Settings\test3.txt", Encoding.GetEncoding("shift_jis"))

おっしゃるとおりでした。ありがとうございます。

解決済み
引用返信 編集キー/
■31880 / inTopicNo.6)  Re[5]: C#における全角文字の検索方法
□投稿者/ επιστημη (1610回)-(2009/01/29(Thu) 17:57:26)
επιστημη さんの Web サイト
2009/01/29(Thu) 18:14:49 編集(投稿者)

> おっしゃるとおりでした。

やっぱりね♪ ファイルから読んでダメつーとEncodingくらいしか心当たりありませんわ。
# つか読み出した文字列をWriteLineすればイッパツで気づいたはずよねー

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -