私はかなり長い間この単純なプログラムに取り組んできましたが、何が間違っているのかわかりません。21 番目の文字が「A」のいずれかであるすべての行をプログラムに書き込むようにしようとしています。問題は、実行時に最初のレコードのみを読み取り、そのレコードを繰り返し続けることです。これが私のコードです:
private void Send(string BaleLine)
{
//Setting Stop to false so buttons will work after Stop has been pushed.
GlobalVariables.Stop = false;
String Lines;
String BaleChecker;
int Counter = 0;
//File location we are reading from.
String File = @"C:\Temp\Forte.dat";
//Creating the new Stream Reader, to read one line at a time.
System.IO.StreamReader FileReader = new System.IO.StreamReader(File);
//Writing until all the files are gone.
if (ApplicationPort.IsOpen == false)
{
//Opening port.
ApplicationPort.Open();
}
do
{
if (GlobalVariables.Stop == false)
{
Lines = FileReader.ReadLine();
Application.DoEvents();
//Checking the bale line of the data.
BaleChecker = Lines.Substring(21, 1);
if (BaleChecker == BaleLine)
{
//Writing the data to the text box..
TextBox1.AppendText(Environment.NewLine + Lines);
//Writing the strings to the Application Port.
ApplicationPort.Write(Lines);
Counter++;
//Giving the Forte Data Gatherer a break.
if (Counter == 5)
{
System.Threading.Thread.Sleep(3000);
Counter = 0;
}
}
}
else
{
//Closing the port before leaving the method.
ApplicationPort.Close();
return;
}
}
while (Lines != null);
//Closing the comm port after the writing is finished.
ApplicationPort.Close();
//Success message saying that everyhting is written to the comm port.
TextBox1.AppendText(Environment.NewLine + "All files successfully written to the serial port.");
}
private void SendALinebtn_Click(object sender, EventArgs e)
{
Send("A");
}
If ステートメントが失敗した後に文字列を破棄する方法はありますか?