Veröffentlicht 8. Mai 201213 j 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(); }
8. Mai 201213 j 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 ?
8. Mai 201213 j Erscheint die Konsolenausgabe? Steht der gesuchte Text ganz sicher alleine in einer Zeile? Ist dir der Unterschied zwischen einer Methodendeklaration und einem Aufruf klar?
8. Mai 201213 j 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 8. Mai 201213 j von songoku187
8. Mai 201213 j 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();
8. Mai 201213 j 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?
8. Mai 201213 j Also du meinst jetzt das ich quasi erst ab dem character 28 erst suchen soll? Weil das Format immer gleich ist. Das macht man so nicht, im eben bestimmte Substring in einem String zu suchen, benutzt mal allgemein Regulärer Ausdruck
8. Mai 201213 j Ä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]
8. Mai 201213 j 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?
8. Mai 201213 j 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.
8. Mai 201213 j 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.
9. Mai 201213 j Mit regulären Ausdrücken kannst du komplexere Abfragen formulieren wie zum beispiel eine prüfung auf eine valide e-mail-adresse. Zum Thema E-Mail-Adressvalidierung verlinke ich gerne folgendes: I Knew How To Validate An Email Address Until I Read The RFC.
9. Mai 201213 j 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 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.
9. Mai 201213 j lies lieber Galileo Computing :: Visual C# 2010 und wo ist dein Problem? Oben wurde doch alles genannt, was du brauchst. Wenn ich es überfliege läuft es auf einen StreamReader, eine while schleife und eine abfrage mit .contains() raus.
9. Mai 201213 j 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.
9. Mai 201213 j lies lieber Galileo Computing :: Visual C# 2010 Ich habe zwar auch damit angefangen, C# zu lernen - allerdings ist das Buch nur bedingt einsteigerfreundlich. Andererseits fallen mir lustigerweise auch keine wirklichen Einsteigerbücher ein, sondern nur so Profi-Teile
9. Mai 201213 j C# von kopf bis fuß wäre für Einsteiger. Aber da gewöhnt man sich tlw. falsche dinge an.
11. Mai 201213 j @lilith2k3: Kannst du mir mal eine Liste mit den Expertenbüchern geben. Ich bin immer an solchen Büchern interessiert
11. Mai 201213 j Klaro: The C# Programming Language (Covering C# 4.0) (Microsoft .Net Development): Amazon.de: Anders Hejlsberg, Mads Torgersen, Scott Wiltamuth, Peter Golde: Englische Bücher http://www.amazon.de/C-Depth-Jon-Skeet/dp/1935182471/ref=sr_1_1?s=books-intl-de&ie=UTF8&qid=1336727623&sr=1-1 http://www.amazon.de/2010-Net-Platform-Andrew-Troelsen/dp/1430225491/ref=sr_1_1?s=books-intl-de&ie=UTF8&qid=1336727638&sr=1-1 Effective C# (covers C# 4.0): 50 Specific Ways to Improve Your C (Effective Software Development): Amazon.de: Bill Wagner: Englische Bücher http://www.amazon.de/C-4-0-Nutshell-Joseph-Albahari/dp/0596800959/ref=sr_1_1?s=books-intl-de&ie=UTF8&qid=1336727678&sr=1-1 Professionell entwickeln mit Visual C# 2010: Das Praxisbuch (Galileo Computing): Amazon.de: Matthias Geirhos: Bücher Das C# 2010 Codebook: Amazon.de: Jürgen Bayer: Bücher The Art of Unit Testing: With Examples in .NET: Amazon.de: Roy Osherove, Michael Feathers: Englische Bücher Professional Enterprise .NET (Wrox Programmer to Programmer) eBook: Scott Millett, Jon Arking: Amazon.de: Kindle-Shop Agile Principles, Patterns, and Practices in C#: Amazon.de: Robert C. Martin, Micah Martin: Englische Bücher So, was mir gerade einfällt
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.