Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Guten Morgen zusammen,

sorry das mein erster Beitrag sofort eine Frage ist aber komme gerade überhaupt nicht weiter. Mein Problem ist eigentlich recht einfach, aber irgendwie bekomme ich es nicht hin. Hier nun meine Frage

Ich möchte eine kleine Anwendung die im Prinzip nur einen Button hat und mit betätigen eine Textdatei ( LOG ) einliest und überprüft ob der String "**** ERROR" drin vorkommt falls ja soll eine E-Mail gesendet werden.

Hier mal ein snippet:


        static void Main(string[] args)

        {

            string find_error = "**** ERROR";


            StreamReader sr = new StreamReader(@"D:\test.txt");


            while (sr.Peek() != -1)

            {

                Console.WriteLine(sr.ReadLine());

                if (sr.ReadLine() == find_error)

                {

                    Console.WriteLine("Fehler gefunden!");

		    public void email();	       // Email senden

                }

            }

            sr.Close();


            Console.WriteLine("\n\nZum Beenden Enter drücken!");

            Console.ReadLine();

        }

:)

Ja meine Frage ist das ich nicht weiß wie ich die Abfrage mache soll das er nach dem String sucht und mir dann die E-mail sendet.

Also was muss ich machen das er den String "**** ERROR" fidnet ?

Also die Konsolen Ausgabe erscheint bekomme den Inhalt der Datei angezeigt.

Der String steht selbst nicht alleine in einer Zeile.

Inhalt der LOG Datei:


(07.05.2012, 05:24:41.770) Client attached to server

(07.05.2012, 05:24:49.831) Client detached from server

(07.05.2012, 05:25:11.512) Client attached to server

(07.05.2012, 05:25:20.224) Client detached from server

(07.05.2012, 05:25:41.605) Client attached to server

(07.05.2012, 05:25:45.650) **** ERROR: COMM_FATALERROR[0] from <W3V1>

(07.05.2012, 05:25:50.197) Client detached from server

(07.05.2012, 05:25:55.094) **** ERROR: COMM_FATALERROR[0] from <W3V1>

Methode ("funktion") wird erstellt und dann innerhalt einer anderen Methoe aufgerufen?

Bearbeitet von songoku187

Also die Konsolen Ausgabe erscheint bekomme den Inhalt der Datei angezeigt.
Es ging mir mehr um die Meldung "Fehler gefunden!".

Der String steht selbst nicht alleine in einer Zeile.
Dann kann dein Code nicht funktionieren, weil du jede Zeile auf Gleichheit mit dem gesuchten Text prüfst. Du müsstest prüfen, ob die Zeile den gesuchten Text (ggf. an einer bestimmten Position) enthält.

Das hier

   public void email();	       // Email senden
sieht wie eine Methodendeklaration aus, wie man sie in C++ benutzen würde. Ich wundere mich, dass dein Compiler das akzeptiert, das dürfte an dieser Stelle im Code eigentlich gar nicht stehen. Ein Funktionsaufruf sähe so aus:
email();

Es ging mir mehr um die Meldung "Fehler gefunden!".

Ach so :) also die Ausgabe: "Fehler gefunden!" zeigt er nicht an.

Dann kann dein Code nicht funktionieren, weil du jede Zeile auf Gleichheit mit dem gesuchten Text prüfst. Du müsstest prüfen, ob die Zeile den gesuchten Text (ggf. an einer bestimmten Position) enthält.

Hast ja vollkommen recht kann nicht funktionieren.

Also du meinst jetzt das ich quasi erst ab dem character 28 erst suchen soll?

Weil das Format immer gleich ist.

sieht wie eine Methodendeklaration aus, wie man sie in C++ benutzen würde. Ich wundere mich, dass dein Compiler das akzeptiert, das dürfte an dieser Stelle im Code eigentlich gar nicht stehen. Ein Funktionsaufruf sähe so aus:

Ja der Aufruf ist von C++ bin gerade am Umsteigen und habe auch schon länger nicht mehr Programmiert.

Ich habe jetzt mal in der txt nur ****ERROR und es funktioniert trotzdem nicht. Da mache ich wohl etwas Grundlegendes falsch?

Äh. Hm.

Das macht die ganze Sache ein wenig komplizierter.

Wenn irgendwo in der Zeile ein "**** Error" kommt, kommst Du nicht weit mit einer ==-Abfrage.

Du solltest dazu übergehen, entweder mit einem Regulärer Ausdruck zu arbeiten; was Dir ersteinmal die Haare zu Berge stehen lassen wird. Aber ich finde es zumindest sinnvoll, dass Du mal davon gehört hast, so, daß, wenn Du fit genug bist, Dich an das Thema erinnerst, und ggf. davon profitierst.

Oder aber -das in Deinem Falle sinnvolle- dazu übergehen, den Inhalt der Zeile zu überprüfen:

String.Contains-Methode (System)

ist da der Schlüssel zum Erfolg:


if (geleseneZeile.Contains(suchBegriff)) TuWas();
[/php]

Danke erst mal für den Tipp also Regex habe ich gestern mal (an)gelesen :) werde ich wohl nicht drum herum kommen.

Und an die String.Contains-Methode erinnere ich mich noch von C++ aber was ist denn in Kombination mit C# die bessere Variante oder im Verlauf die am meisten unter C# verwendet wird?

Ich denke mal für deinen einfachen fall, um nur zu prüfen, ob der string i-wo im text vorkommt ist die Contains-Methode ausreichend.

Mit regulären Ausdrücken kannst du komplexere Abfragen formulieren wie zum beispiel eine prüfung auf eine valide e-mail-adresse.

Kann ich so nur unterschreiben.

Wie gesagt, Du solltest es mal gehört haben. Für den Großteil der Fälle reicht ein "Contains" aus.

Aber wenn Du nach komplexeren Mustern suchst, ist eine RegEx Gold wert - vorallem, wenn Du das Konzept verstanden hast, kannst Du es in vielen Sprachen und Anwendungsgebieten einsetzen.

Soo habe nun einiges gelesen aber leider nicht weiter gekommen :( aber naja was solls **** happen. Ich werde mir erstmal ein komplettest TUT zu C# gönnen :D

http://www.guidetocsharp.de

ich hoffe das ich danach schlauer bin. Falls ich die Lösung habe werde ich euch natürlich darüber benachrichtigen.

Falls Ihr schon das tut kennt wäre es schön wenn ihr mir eure erfahrungen damit sagen könntet oder vieleicht ein anderes besseres empfehlen könnt.

Okey das bin ich nebenbei auch am (quer)lesen ist echt gut aber war mir dann doch zuviel von der Seitenanzahl her.

Stimmt schon eigentlich ist es auch nicht mehr wie du schon sagst als die txt mit StreamReader zu lesen und dann eine abfrage mit contains(). Umso trauriger ist es das ich es dann trotzdem nicht hinbekomme, mache da wohl syntaktisch etwas falsch aber naja kann ja nicht schaden bei NULL ;) anzufangen.

Werde das bis zum WE hoffentlich gelöst haben.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.