我正在嘗試使按鈕檢查openFileDialog1.FileName
中文件的每一行,並且它是否包含字符串「LCD」或「laser」和「on」之一或者在同一行上包含「激光」和「關」字符串以及字符串「.end」然後執行某些操作。無法使用File.ReadAllLines讀取文件
我是C#的新手(本週開始),也不是母語爲英語的人。
我的目標是讓我的Arduino機器人手臂(我的第一個版本非常簡單)有些可編程,只是爲了控制LCD並打開或關閉激光(到目前爲止)。
順便說一句,這只是模擬器,所以這就是爲什麼它永遠不會發送任何串行數據。
下面是問題的代碼片段,問題是當我在模擬器中「運行」的代碼它似乎是一次檢查所有的行,因爲在它檢查的代碼,這是
LCD = hello
laser = on
LCD = 000
laser = off
只設置LCD 000,我查了激光=上單獨代碼之前,並沒有在那裏工作,但是當我在private void Form3_Load(object sender, EventArgs e)
試了一下它的工作完美,所以底線的最後LCD命令每個代碼的工作原理和激光代碼從不起作用。
另外我想讓每一行代表1秒,所以每行在它繼續下一行之前會花費一秒鐘的時間。
的timer1
間隔爲1000(一秒)
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);
}
您確定您的文件中有識別換行符嗎?在閱讀完行後放置一個斷點,並且可以將鼠標懸停在「行」上查看其內容。 – MikeH 2014-11-06 22:35:36