songoku187 Geschrieben 8. Mai 2012 Geschrieben 8. Mai 2012 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(); } Zitieren
Guybrush Threepwood Geschrieben 8. Mai 2012 Geschrieben 8. Mai 2012 und wie lautet deine Frage? Zitieren
songoku187 Geschrieben 8. Mai 2012 Autor Geschrieben 8. Mai 2012 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 ? Zitieren
Klotzkopp Geschrieben 8. Mai 2012 Geschrieben 8. Mai 2012 Erscheint die Konsolenausgabe? Steht der gesuchte Text ganz sicher alleine in einer Zeile? Ist dir der Unterschied zwischen einer Methodendeklaration und einem Aufruf klar? Zitieren
songoku187 Geschrieben 8. Mai 2012 Autor Geschrieben 8. Mai 2012 (bearbeitet) 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 2012 von songoku187 Zitieren
Klotzkopp Geschrieben 8. Mai 2012 Geschrieben 8. Mai 2012 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(); Zitieren
songoku187 Geschrieben 8. Mai 2012 Autor Geschrieben 8. Mai 2012 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? Zitieren
flashpixx Geschrieben 8. Mai 2012 Geschrieben 8. Mai 2012 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 Zitieren
lilith2k3 Geschrieben 8. Mai 2012 Geschrieben 8. Mai 2012 Ä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] Zitieren
songoku187 Geschrieben 8. Mai 2012 Autor Geschrieben 8. Mai 2012 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? Zitieren
Rekon1602 Geschrieben 8. Mai 2012 Geschrieben 8. Mai 2012 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. Zitieren
lilith2k3 Geschrieben 8. Mai 2012 Geschrieben 8. Mai 2012 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. Zitieren
a3quit4s Geschrieben 9. Mai 2012 Geschrieben 9. Mai 2012 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. Zitieren
songoku187 Geschrieben 9. Mai 2012 Autor Geschrieben 9. Mai 2012 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. Zitieren
SilentDemise Geschrieben 9. Mai 2012 Geschrieben 9. Mai 2012 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. Zitieren
songoku187 Geschrieben 9. Mai 2012 Autor Geschrieben 9. Mai 2012 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. Zitieren
lilith2k3 Geschrieben 9. Mai 2012 Geschrieben 9. Mai 2012 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 Zitieren
SilentDemise Geschrieben 9. Mai 2012 Geschrieben 9. Mai 2012 C# von kopf bis fuß wäre für Einsteiger. Aber da gewöhnt man sich tlw. falsche dinge an. Zitieren
Rekon1602 Geschrieben 11. Mai 2012 Geschrieben 11. Mai 2012 @lilith2k3: Kannst du mir mal eine Liste mit den Expertenbüchern geben. Ich bin immer an solchen Büchern interessiert Zitieren
lilith2k3 Geschrieben 11. Mai 2012 Geschrieben 11. Mai 2012 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 Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.