Laden...

Bestimmte Zeile mit Terminal Fenster auslesen

Erstellt von Wollez vor 4 Jahren Letzter Beitrag vor 4 Jahren 730 Views
W
Wollez Themenstarter:in
4 Beiträge seit 2020
vor 4 Jahren
Bestimmte Zeile mit Terminal Fenster auslesen

Hallo zusammen,

ich bin blutiger Anfänger in C#. Natürlich habe ich mir die Grundlagen in verschieden Büchern angeschaut und denke, dass ich sie verstanden habe.

Bisher habe ich mit Arduino "gespielt". Jetzt möchte ich mal mit C# anfangen. Für mich ist dies immer das beste gewesen einen eigenen Code zu "basteln". Hiermit habe ich meisten Erfahrungen gesammlt.

So, genug über mich 😃

Kommen wir mal zu meinem Problem 😉

Ich habe ein Stamp (Mini Computer) auf dem Linux läuft und ich über ein Terminal vom Windows PC (extern) den Bootvorgang des Linux beobachte und über eine Taste stoppen kann, und muß. Dadurch werden mir bestimmte Daten angezeigt, wie z.B. eine Mac Adresse. Das funktioniert schon mal. Jetzt sollte aus dem Terminal eine bestimmte Zeile (Mac Adresse) ausgelesen werden und in eine Text Datei geschrieben werden.

Ist es überhaupt möglich eine bestimmte Zeile auszulesen und in einer Textdatei auszugeben? Wenn ja, kann mir jemand ein Beispiel nennen?

Ich hoffe ich hab mein Problem verständlich beschrieben.

Im Anhang habe ich ein Ausschnitt des Terminal Fenster gehängt.

Das Terminalfenster wird über folgenden Code gestartet:


using System;
using System.IO.Ports;
using System.Threading;

namespace ConsoleTool
{
    class Program
    {
        
        static SerialPort Linux;

        
        static void Main(string[] args)
        {
            Linux = new SerialPort();
            Linux.PortName = "com1";
            Linux.BaudRate = 115200;
            Linux.Open();

            while (true)
                Console.WriteLine(DateTime.Now.ToString() + Linux.ReadLine());
          
        }
    }
}

Gruß Wolfgang

4.939 Beiträge seit 2008
vor 4 Jahren

Hallo und willkommen,

du kannst ja jede einzelne Zeile auf den Text "MAC:" testen, z.B.


while (true)
{
  string line = Linux.ReadLine();
  Console.WriteLine(DateTime.Now.ToString() + line);

  if (line.StartsWith("MAC:")
  {
     string mac = line.Substring(4);
     // todo: write to file
  }
}

Und um diesen Wert in eine Textdatei zu schreiben, schau dir [Tutorial] Dateioperationen: Alles über Dateien 2.2 ("Die neuen Möglichkeiten des .NET Frameworks 2.0") an.