ファイルの各行をチェックするボタンを作成しようとしていますopenFileDialog1.FileName
。同じ行に「LCD」または「laser」と「on」のいずれかの文字列が含まれているか、または「laser」と「off」が含まれているか同じ行と文字列「.end」で、何かをします。
私は C# を初めて使用し (今週から始めました)、それも英語のネイティブ スピーカーではありません。
私の目標は、LCDを制御してレーザーをオンまたはオフにするだけで、Arduinoロボットアーム(最初のビルドなので非常にシンプル)をある程度プログラム可能にすることです(これまでのところ)。
ところで、これは単なるシミュレータであるため、シリアル データは送信されません。
以下は問題のあるコードのスニペットです。問題は、シミュレーターでコードを「実行」すると、コードでチェックするため、すべての行を一度にチェックしているように見えることです。
LCD = hello
laser = on
LCD = 000
laser = off
LCDを000に設定するだけで、前にコードだけでレーザー=をチェックしましたが、そこでは機能しませんでしたが、試してみるとprivate void Form3_Load(object sender, EventArgs e)
完全に機能したので、各コードの最後のLCDコマンドが機能し、レーザーコード動作しません。
また、すべての行が 1 秒を表すようにしたいので、各行が次の行に続くまでに 1 秒かかります。
間隔はtimer1
1000 (1 秒)
private void timer1_Tick(object sender, EventArgs e)
{
int lineNumber = richTextBox1.GetLineFromCharIndex(richTextBox1.TextLength);
string[] lines = File.ReadAllLines(openFileDialog1.FileName);
try
{
for (int i = 0; i < lineNumber; i++)
{
if (lines[i].Contains("LCD"))
{
label1.Text = lines[i].Remove(0, 6);
}
if (lines[i].Contains("laser") && lines[i].Contains("On"))
{
pictureBox4.Show();
}
if (lines[i].Contains("laser") && lines[i].Contains("Off"))
{
pictureBox4.Hide();
}
if (lines[i].Contains(".end"))
{
button2.PerformClick();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Form3", MessageBoxButtons.OK, MessageBoxIcon.Error);
}