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

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

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

No.81398 の関連記事表示

<< 0 >>
■81398  C# 複数行のテキストの読み込み
□投稿者/ あおいそら -(2016/09/15(Thu) 22:29:54)

    分類:[ASP.NET (C#)] 


    いつもお世話になっています。

    C# 複数行のテキストボックス(ラベル)の値取得について
    多少省略しているところが、ありますがよろしくお願します。

    複数行のテキストボックスのTextを読み取るときは

    StringReaderクラスでテキストボックスを指定、ReadLineを使用し
    a = a + ReadLine();
    でテキストボックスの中身を連結して、取得することが出来ますが、全三行ある【二行目と三行目のみ】取得したいときはどうすればよいのでしょうか?

    確実に三行入れば、string型の配列を作って[1]と[2]を取ればいいのですが、三行目が入らないときはエラーが発生してしまいます。

    改行文字をSprit出来るように置換してやる方法もあるのですが、ReadLineを用いる場合はどのように書けばいいのでしょうか。

    こちらが考えているのは一行にあたるReadLineを空うちさせ、2行目と3行目のReadLineで値を取得…なんてことをやってますが、もし良き書き方があるよーってかたがおりましたら、是非情報をください!
親記事 /過去ログ138より / 関連記事表示
削除チェック/

■81399  Re[1]: C# 複数行のテキストの読み込み
□投稿者/ もりお -(2016/09/15(Thu) 23:21:32)
    No81398 (あおいそら さん) に返信
    
    LINQでどうかしら
    
    static void test()
    {
        var lines = readLines("a\nb\nc\n")
            .Skip(1)
            .Take(2);
    
        string value = string.Join("", lines);
        System.Diagnostics.Debug.WriteLine(value);
    }
    
    static IEnumerable<string> readLines(String value)
    {
        StringReader reader = new StringReader(value);
        for (String line = reader.ReadLine(); line != null; line = reader.ReadLine())
        {
            yield return line;
        }
    }
    
記事No.81398 のレス /過去ログ138より / 関連記事表示
削除チェック/

■81401  Re[1]: C# 複数行のテキストの読み込み
□投稿者/ Jitta -(2016/09/16(Fri) 11:28:54)
    No81398 (あおいそら さん) に返信

    textbox.Text.Split(new string[] { "\r\n" }, ながいので略)
    で、行ごとに分割した文字列配列になります
記事No.81398 のレス /過去ログ138より / 関連記事表示
削除チェック/

■81402  Re[1]: C# 複数行のテキストの読み込み
□投稿者/ 魔界の仮面弁士 -(2016/09/16(Fri) 11:56:07)
    No81398 (あおいそら さん) に返信
    > 改行文字をSprit出来るように置換してやる方法もあるのですが、
    分割するのは「Split」ですね。
    今回書かれた「Sprit」は、船のへさき(斜檣)のことです。


    > 確実に三行入れば、string型の配列を作って[1]と[2]を取ればいいのですが、
    > 三行目が入らないときはエラーが発生してしまいます。

    これでどうでしょう。
    仮に TextBox の内容が空だったとしても、
    二行目・三行目は "" になるだけで、エラーにはなりません。


    string[] lines = (textBox1.Text + "\r\n\r\n").Split(new string[] { "\r\n" }, 4, StringSplitOptions.None);
    string 二行目 = lines[1];
    string 三行目 = lines[2];

    // 上記では、改行文字が CrLf であるという前提で書いています。
記事No.81398 のレス /過去ログ138より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -