VisualStudioのWindowsフォームで作成しています。
「3,
4,
5,」
とあるcsvファイルを配列に落とし込み、
配列[0]にある数字を桁数として、1から順にその桁数分テキストボックスに羅列したいです。
具体的にはまず1を3桁羅列し、次に2を4桁羅列、そして3を5桁羅列する
111222233333
と、いった具合です。
これまで学んだ知識を引っ張り出しましたが
111111111111
と表示させることしかできませんでした。(コードにできたところまで記載しています。)
ご教授ください。
C#
1//ファイル指定 2String Filepath = @"D:test.csv"; 3 4//ファイルを開く 5StreamReader sr = new StreamReader(Filepath); 6 7//行末まで繰り返す 8while (!sr.EndOfStream) 9{ 10 //ファイルの1行を読み込む 11 string line = sr.ReadLine(); 12 //読み込んだ行をカンマ区切りで配列に格納する 13 string[] srcValues = line.Split(','); 14 //int型に直す 15 int T = int.Parse(srcValues[0]); 16 //数字を配列にある桁数分並べる 17 for (int i = 0; i < T; i++) 18 { 19 textBox1.Text = textBox1.Text + "1"; 20 } 21}
まず、『意味が分かりません』。
>> [ ]{3,4,5}の時、テキストボックスに111222233333と表示
関係性が見えません。なぜ { 3, 4, 5 } が "111222233333" になるのでしょうか。
>> ファイルを開く
とありますが、その肝心のファイルの書式がわからない。
それと、コードは "<code>"または "<コード>" のボタンで出てくるやつの中に書きましょう。
仕様があまりにもめちゃくちゃです。
回答者は質問者と同じ環境にある……わけじゃないので、書かれた通りにしか読み取れません。
BeatStarさんと同じような意見になりますが、質問文とコードでやろうとしていることは一致させてください。
修正しました。
Teratilもプログミングも初めてですのでおかしい点ございましたらまたご指摘ください。
> 配列[2]の中に3,4,5があった時
"配列"は ',' でSplitしているので、配列[2]に"3,4,5"が入ることがあり得ないと思うのですが。。。
ファイルの内容も記載して、もう一度どうしたいかを整理して質問を修正してみてください。
今の状態だと、"111111111111"と表示されているのが信じられません。
改善されたようですが、質問内容からやりたいことがわかりませんでした。
例えば「配列[2]にある数字を桁数して」あたりとかが全くわかりませんでした…。
入力ファイルのフォーマット(CSVだけではなく、CSVの中にどういうデータが入っているのか)と具体的なファイルの中身と、それを読み込んだ結果があわせて書いてあると、文章から読み取るのが難しくても回答者が何をしたいのか読み取りやすくなると思います。
コードですが、下の行で "1" しか足してないので結果は必ず全部 1 がつながった文字列になると思います。(仕様がわからないのでそれしかいえないです。すいません。)
textBox1.Text = textBox5.Text + "1";
>> for (int i = 0; i < T; i++)...
これだけでは1が4以上並ぶことはあり得ないと思うのですが。
(だって int T は 3 でしょ?)
何か足りていない部分(端折った部分)があるのでは?
「3,4,5」と、1つ目のカラムが3、2つ目のカラムが4、3つ目のカラムが5を示しているので、"111222233333"なのでしょうか。
「2,5,3,1」だったら"11222223334"? それもあくまで私の推測です。ちゃんと説明しましょう。
そもそも「3,\n4\n5,\n」と言うデータも良く分からないようです。CSVなのでしょうか。1行毎に1データでしょうか。ちゃんと説明しましょう。
回答1件
あなたの回答
tips
プレビュー