大家好, 本魯小弟我只會初階MATLAB, 最近為了論文開始學C#, 盼各位大大指教
問題是這樣, 我有個力感測器的外部程式(開起來像主控台應用程式, 黑底白字那種)
它每一行都會Console.Writeline()六個數字, 並且不斷更新
現在我想寫一個程式隨時擷取外部程式的最後一行數字, 過程中外部程式不能關
, 而我每次擷取都必須是當下外部程式中最新的那行數字
請各位大大教教我 pls. 由衷感謝
P.S. 如果對於我描述的外部程式感到難懂的話, 以下程式可以呈現類似結果
int i = 1;
while( i>=1 )
{
Console.WriteLine(i);
i++;
}
Console.ReadLine();
您可以使用 System.Diagnostics 類別中的 Process 類別來擷取外部程式的輸出。
using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// 啟動外部程式
Process process = new Process();
process.StartInfo.FileName = "外部程式路徑";
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.UseShellExecute = false;
process.Start();
// 每隔一段時間擷取最新輸出
while (true)
{
// 等待一段時間
System.Threading.Thread.Sleep(1000);
// 擷取最新輸出
string output = process.StandardOutput.ReadToEnd();
string[] lines = output.Split('\n');
string lastLine = lines[lines.Length - 2];
Console.WriteLine("最新輸出: " + lastLine);
}
}
}