プログラムが行うことは、Web ページに移動し、ソースを 1 行ずつ読み取り、html タグ/コードを取り除き、実際のテキスト/情報をテキスト ファイルに書き込むことです。テキスト ファイルには必要なデータ/情報のみを含め、他には何も含めないようにしたいので、適切なセクションが見つかったことを示す特定の文字列を探して、テキスト ファイルへの書き込みを開始できるようにします。セクションの終わりが見つかったときに知る別の文字列。ファイル内の正しい行で正しく開始および停止します(確認するためにカウンターを入れましたが、正しい場所で正しく停止/開始していました)が、すべての情報をテキストファイルに書き終えるわけではありません. 特定の行の終わりでさえ停止しません。行の途中で書き込みを停止することがよくあります。例として、4行読みたい場合、
1 行目のテキスト.. 2 行目のテキスト.. li のテキスト
4行の読み取り/書き込みを行う必要がありますが、停止します。
以下は私のコードです:
private void button1_Click(object sender, EventArgs e)
{
string tempString = "";
string startString = "start string";
string endString = "end string";
bool startFlag = false;
bool endFlag = true;
string filename = @"C:\file.txt";
System.IO.StreamWriter file = new System.IO.StreamWriter(filename);
WebRequest request = WebRequest.Create("http://www.website.com/webpage.html");
request.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Console.WriteLine(response.StatusDescription);
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
while (endFlag)
{
tempString = reader.ReadLine();
if (tempString.Contains(startString))
{
startFlag = true;
}
if (tempString.Contains("text"))
{
...
}
if (tempString.Contains("other text"))
{
if (startFlag)
file.WriteLine(tempString.Trim());
}
if (tempString.Contains("different text"))
{
if (startFlag && tempString.Length > 0)
file.WriteLine(tempString.Trim());
}
if (tempString.Contains(endString))
{
endFlag = false;
}
}
MessageBox.Show("Done!", "Finished Writing", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
reader.Close();
dataStream.Close();
response.Close();
Process.Start(filename);
this.Close();
}
考えられるすべてのことを試しました。フラッシュを使用してみました。セクションの終わりを示す文字列を超えて読み書きを続けようとしましたが、何も機能していないようです。私は決して最高のコーダーではないことを知っていますが、本当に困惑しています. 誰でもいくつかの洞察を共有できますか? どんな助けでも大歓迎です!