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

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

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

Re[1]: C# 複数行のテキストの読み込み


(過去ログ 138 を表示中)

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

■81398 / inTopicNo.1)  C# 複数行のテキストの読み込み
  
□投稿者/ あおいそら (1回)-(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で値を取得…なんてことをやってますが、もし良き書き方があるよーってかたがおりましたら、是非情報をください!
引用返信 編集キー/
■81399 / inTopicNo.2)  Re[1]: C# 複数行のテキストの読み込み
□投稿者/ もりお (20回)-(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;
    }
}

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

textbox.Text.Split(new string[] { "\r\n" }, ながいので略)
で、行ごとに分割した文字列配列になります
引用返信 編集キー/
■81402 / inTopicNo.4)  Re[1]: C# 複数行のテキストの読み込み
□投稿者/ 魔界の仮面弁士 (902回)-(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 であるという前提で書いています。
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -