C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。
Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。
Q&A
解決済
2回答
981閲覧
総合スコア40
0グッド
0クリップ
投稿2016/11/13 08:27
0
ヘッダーに基づいてデータを分割する時にどのような記述にすればよろしいでしょうか。
ex: sample.csv ※headerA_BeginからheaderA_End、headerB_BeginからheaderB_Endまでをそれぞれ分割したい
headerA_Begin data1,... data2,... headerA_End headerB_Begin data3,... data4,... headerB_End
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
回答2件
ベストアンサー
こんな感じかなぁ。
C#1using(var inStream = new StreamReader("sample.csv")){ 2 while(!inStream.EndOfStream){ 3 string ln; 4 5 ln = inStream.ReadLine(); 6 7 if(ln.EndWith("_Begin")){ 8 string headerName = ln.Substring(0, ln.Length-6); 9 10 while(!inStream.EndOfStream){ 11 ln = inStream.ReadLine(); 12 13 if(ln == headerName+"_End"){ 14 break; 15 } 16 17 parseCsvData(headerName, ln); 18 } 19 } 20 } 21}
C#
1using(var inStream = new StreamReader("sample.csv")){ 2 while(!inStream.EndOfStream){ 3 string ln; 4 5 ln = inStream.ReadLine(); 6 7 if(ln.EndWith("_Begin")){ 8 string headerName = ln.Substring(0, ln.Length-6); 9 10 while(!inStream.EndOfStream){ 11 ln = inStream.ReadLine(); 12 13 if(ln == headerName+"_End"){ 14 break; 15 } 16 17 parseCsvData(headerName, ln); 18 } 19 } 20 } 21}
投稿2016/11/13 08:37
総合スコア2850
回答へのコメント
2016/11/13 22:24
予めヘッダーの種類が分かっていると仮定(headerAとheaderB)。 dataが複数個ある。
と考えれば、1行ずつ読み込んでcsvのセパレーターが','と仮定して','で分割して、それぞれを読み込んでいる'header'の状態で二次元配列 array_a,array_bに格納すればいいのでは?
投稿2016/11/13 08:35
総合スコア3778
2016/11/13 22:23
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.29%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
複数のデータに分割する方法
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/13 22:24