私はC#に慣れるためのツールを作っていますが、基本的にツールはウェブサイトの情報を表示しますが、面白い統計を追加します。文字列を通過するときにIndexOutOfRangeExceptionが発生する
私は2つのタグ間でデータを取得する部分にあります。 私はそれを行うために正規表現と他のライブラリを使ってみましたが、結局私は自分のアルゴリズムを使ってデータを取得し始めました。
私はCアルゴリズムに慣れていますので、ループが存在するかどうかチェックしました。ここで
while (tag1 < result.Length)
{
if (result[tag1] == 'h' && result[tag1 + 1] == 'r' && result[tag1 + 2] == 'e' && result[tag1 + 3] == 'f')
{
List<char>temp = new List<char>();
tag1 += 4;
while (result[tag1] != '>')
tag1++;
tag1++;
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate()
{
richtextbox1.AppendText(Environment.NewLine + result[tag1 + 7]);
});
while (result[tag1] != '<')
{
//this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate()
//{
// richtextbox1.AppendText(Environment.NewLine + result[tag1]);
//});
temp.Add(result[tag1]);
tag1++;
}
string s = string.Join(",", temp.ToArray());
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate()
{
richtextbox1.AppendText(Environment.NewLine + temp);
});
}
tag1++;
}
は私が
List<char>
マイ指数」で「サムスン」を格納したいという例では、「ニックネーム」
<td class="ak-rank"><span class="ak-icon-position">107235</span></td> <td class="ak-name"><span class="ak-breed-icon breed12_1"></span><a href="http://www.dofus.com/fr/mmorpg/communaute/annuaires/pages-persos/747884800030-samsung">Samsung</a></td> <td class="ak-class">Pandawa</td> <td>200</td> <td>Many</td> <td class="ak-xp-24h">2 884 302 154</td> <td class="ak-xp-total">6 027 524 190</td>
をつかむしたい例のHTMLラインであります「tag1」はwhile (result[tag1] != '<')
ループに入る前に正しい位置にあります。そして、それは "<"文字が見えたら停止するはずです。
コードにデバッグを残しましたが、result[tag + 7]
に "<"があることが確認されていますが、実行するとIndexOutOfRangeException
と表示されます。
読んでいただきありがとうございます。私が明確でない場合は、お気軽にご質問ください。
に
:あなたは再考えるあなたは、ロジックまたは変更する必要がありますか? –