私は、テキスト ファイルを読み取り、テキストを各項目のブロックに整理することに取り組んできました。プログラムの使用中にデータを保存して呼び出す方法を見つけるのに助けが必要です。出力をデータグリッドビューとして表示しようとしています。これにアプローチする方法がわかりません。新しいブロックごとにデータ テーブルを作成できると考えていますが、その方法がわかりません。
これまでの私のコード:
public void findBlocks()
{
String fileName = "Drops.de";
StreamReader streamReader = new StreamReader(fileName);
String npcName;
string npcID;
string itemID;
string itemAmount;
string itemRarity;
string itemName;
while(!streamReader.EndOfStream){
string line = streamReader.ReadLine();
//start of block
if(line.StartsWith("[")){
npcName = line.TrimStart('[');
npcName = npcName.TrimEnd(']');
while(!line.StartsWith("[/")){
line = streamReader.ReadLine();
String[] s = line.Split(' ');
npcID = (s[0]);
itemName = (s[1]);
itemID = (s[2]);
itemAmount = (s[3]);
itemRarity = (s[4]);
DataTable dt = new DataTable();
DataGridViewRow dgv = new DataGridViewRow();
DataGridViewRow row = (DataGridViewRow)dataGridView1.Rows[0].Clone();
row.Cells[0].Value = itemName;
row.Cells[1].Value = itemID;
row.Cells[2].Value = itemAmount;
row.Cells[3].Value = itemRarity;
dataGridView1.Rows.Add(row);
dataGridView1.Refresh();
line = streamReader.ReadLine();
//MessageBox.Show(npcName);
}
}
}
}
private void button2_Click(object sender, EventArgs e)
{
search();
}
public void loadItemList(string file)
{
String fileName = file;
StreamReader streamReader = new StreamReader(fileName);
while (!streamReader.EndOfStream)
{
string currentLine = streamReader.ReadLine();
string s;
String id;
String itemName = "";
if (currentLine.Contains("item"))
{
s = currentLine.TrimStart('i', 't', 'e', 'm', ' ', '=', ' ');
id = s.Split('.')[0];
itemName = id.Split('\t')[1];
id = id.Split('\t')[0];
listBox1.Items.Add(itemName + " " + id);
}
else
{
streamReader.ReadLine();
}
}
streamReader.Close();
}
これは、並べ替えようとしているテキスト ファイルの例です。
[item1]
2550 coins 995 200000 7
2550 coins 995 200000 7
2550 coins 995 200000 7
2550 coins 995 200000 7
2550 coins 995 200000 7
[/item1]
[item2]
2550 coins 995 200000 7
2550 coins 995 200000 7
2550 coins 995 200000 7
2550 coins 995 200000 7
2550 coins 995 200000 7
[/item2]
[item3]
2550 coins 995 200000 7
2550 coins 995 200000 7
2550 coins 995 200000 7
2550 coins 995 200000 7
2550 coins 995 200000 7
[/item3]
等..
ありとあらゆる助けをいただければ幸いです:)