私はこの機能を持っています:
private void button6_Click(object sender, EventArgs e)
{
crawlLocaly1 = new CrawlLocaly();
crawlLocaly1.StartPosition = FormStartPosition.CenterParent;
DialogResult dr = crawlLocaly1.ShowDialog(this);
if (dr == DialogResult.Cancel)
{
crawlLocaly1.Close();
}
else if (dr == DialogResult.OK)
{
//LocalyKeyWords.Add(crawlLocaly1.getText() + "," + mainUrl);
if(LocalyKeyWords.ContainsKey(mainUrl))
{
LocalyKeyWords[mainUrl].Add(crawlLocaly1.getText());
}
else
{
LocalyKeyWords.Add(mainUrl, new List<string>(new string[]
{
crawlLocaly1.getText()
}
));
}
crawlLocaly1.Close();
}
}
ユーザーが textBox に何かを入力して [OK] をクリックすると、LocalKeyWords の結果は Dictionary> のようになります。
インデックス 0 には、たとえば次のようになります。http://www.google.com ","google google は、 http://www.google.comに属するキーです。
ユーザーがURLにキーワードを1回入力すると、2番目の部分に移動し、ユーザーが同じURLのキーを変更すると最初の部分に移動し、ユーザーがURLを変更した場合は2番目の部分に移動します部。
最初にURLのキーを配置し、2番目に同じURLのキーを更新するか、新しいURLに新しいキーを配置します。
したがって、リストは次のようになります。
index 0 http://www.google.com,google
index 1 http://www.microsoft.com,com
などなど...そして、この関数は正しく機能しています。ハード ディスク上のテキスト ファイルにリストを追加するだけです。したがって、Form1 レベルには streamwriter w = new streamwriter(@"d:\test.txt"); があります。
実際、リストでブレークポイントを使用している場合、左側に url then が表示され、キーワード以外の何かが表示されます。
[0] = {[http://www.google.co.il, System.Collections.Generic.List`1[System.String]]}
それはバグでも何かでもなく、ブレークポイントにあるだけです。代わりに System.Collections.Generic.List`1[System.String] のようなキーワードが表示されるはずでした: google
テキストファイル形式が次のようになるように、リスト値をテキストファイルに書き込むにはどうすればよいですか。
0 http://www.google.com,google
1 http://www.microsoft.com,hello
2 http://www.cnet.com,Daniel
0 1 2 はインデックスを提示し、url は mainUrl を提示し、右の sie はキー (ユーザーが入力したキーワード) を提示します。
次に、テキスト ファイルから lixtBox に値を読み戻すにはどうすればよいでしょうか。したがって、コンストラクターでプログラムを実行すると、テキスト ファイルが読み取られ、listBox に次の形式で表示されます。
url: http://www.google.com --- keword: google
url: http://www.microsoft.com --- keword: hello
url: http://www.cnet.com --- keword: Daniel
そのため、ユーザーはテキスト ファイルよりも listBox の方が適切に表示されます。