私はすべてが同じように書式設定されたヘッダーを持つ情報の本質的な「段落」に分かれているテキスト文書を読み込もうとしています。テキストの段落を読み込み、StreamReaderを使用して次の行を取得
各ヘッダタイトルを親として、treeView
に追加し、残りのヘッダ情報を子としてtreeView
に追加します。
ヘッダーを追加するのは簡単ですが、子供を正しい親に追加する際に問題があります。私はStreamReader
を使って各行を読み、 "段落"の始まりを見つけて親を作ります。私が追加しなければならない子供たちは、次の3つの行になるでしょう。 StreamReader's
ReadLine()
からcurrentLineを取得するにはどうすればよいですか?それとももっと良い方法がありますか?
using (var sr = new StreamReader(file))
{
string line;
while ((line = sr.ReadLine()) != null)
{
//Sheet name
if (line.Contains("Sheet Name"))
{
string parentNodeName = line.Split('=')[1].Trim();
//Add Parent
treeView.Nodes.Add(parentNodeName);
//Add children, on next 3 lines
treeView.Nodes[parentNodeName].Nodes.Add("Child-1 Text"); //on next line
treeView.Nodes[parentNodeName].Nodes.Add("Child-2 Text"); //on next next line
treeView.Nodes[parentNodeName].Nodes.Add("Child-3 Text"); //etc
}
}
sr.Close();
sr.Dispose();
}
ファイルからのサンプルテキスト(「段落」ヘッダ):
800: Sheet Name = Sheet3
999 : Process = 2
1000 : Material = AL,CR,STEEL
1001 : Cut Quality = 0,1,2,3,4,5,6,7,8
は、同一の親ノードに子を追加して、ツリーに追加するこれらの行を解析するつもりです。 Like:
Sheet3
2
AL,CR,STEEL
0,1,2,3,4,5,6,7,8
SS
0,1,2,3,4,5,6,7,8
MS
0,1,2,3,4,5
4
AL,CR,STEEL
0,1,2,3,4,5,6,7,8
MS
0,1,2,3,4,5
10
AL,CR,STEEL
0,1,2,3,4,5,6,7,8
SS
0,1,2,3,4,5,6,7,8
フォーマットを見ることができるようにいくつかの段落のサンプルテキストを投稿できますか? –
いつも次の3行を読まなければならない場合は、何が問題なのか分かりません。 – JotaBe
'sr.ReadLine()'に何か問題がありますか? –