kasumi Geschrieben 15. September 2008 Geschrieben 15. September 2008 Hi leute, ich hab en kleines problemchen^^ dummerweise muss ich für meinen ausbilder bestimmte inhalte in einer logdatei auslesen, die später in einer exeldatei verfasst werden sollen. Kann mir jemand kurz bitte zeigen wie ich den gesamten inhalt der datei auslese und wie ich bestimmte worte oder datumangaben auslese??? merci:D Zitieren
flashpixx Geschrieben 15. September 2008 Geschrieben 15. September 2008 Wie man Fragen richtig stellt: eine Anleitung wie man Fragen erfolgreich in Usenet, Mailing Listen und Webforen stellt. STFW Phil Zitieren
s0h0 Geschrieben 15. September 2008 Geschrieben 15. September 2008 C# Textdatei - Datei lesen, Datei schreiben, Zeilen anhngen, Zeile austauschen streamreader und readline duerften helfen... Zitieren
kasumi Geschrieben 16. September 2008 Autor Geschrieben 16. September 2008 so weit bin ich bis jetzt auch gekommen, ich zeig euch mal was ich bis jetzt zusammen bekommen habe : String zeile = ""; try { StreamReader sr = new StreamReader(@"C:080915 von dl_re21peters.log"); while ((zeile = sr.ReadToEnd()) != null) { Console.WriteLine(sr.ReadLine()); } sr.Close(); } catch { // Fehler beim Öffnen der Datei } Console.ReadLine(); } nur irgendwas ist daran falsch...weiß nur nich was... und wie gehts jetzt weiter? Zitieren
TDM Geschrieben 16. September 2008 Geschrieben 16. September 2008 StreamReader sr = new StreamReader(@"C:080915 von dl_re21peters.log"); Normalerweise wird hier ein Pfad erwartet wie "C:\dl_re21peters.log". btw: Wenn du dir im catch-Block die Exception anschaust, findest du meist Fehler schneller. btw²: close in finally. btw³: Schleifen in Try-Blöcken sind langsam(er). [Editerle] btw^4: "zeile" verwenden bei Ausgabe auf Console. Zitieren
kasumi Geschrieben 16. September 2008 Autor Geschrieben 16. September 2008 was meintst du mit zeile verwenden? ich hab den pfad geändert so wie du meintest aber er compiliert nicht fehlerfrei. Zitieren
s0h0 Geschrieben 16. September 2008 Geschrieben 16. September 2008 er meint, dass die 4 zeile fuer eine konsolenanwendung ist. die du ja wahrscheinlich nicht hast. Zitieren
Franzose Geschrieben 16. September 2008 Geschrieben 16. September 2008 ja dann poste mal, was der gute dir sagt damit wir dir auch mal helfen können Zitieren
TDM Geschrieben 16. September 2008 Geschrieben 16. September 2008 was meintst du mit zeile verwenden? String [B]zeile[/B] = ""; StreamReader sr = null; try { [INDENT]sr = new StreamReader(@"C:080915 von dl_re21peters.log"); while (([B]zeile[/B] = sr.ReadToEnd()) != null) { [INDENT]Console.WriteLine([COLOR="Red"]sr.ReadLine()[/COLOR]); [COLOR="Red"]//<-- [B]zeile[/B][/COLOR][/INDENT] }[/INDENT] } catch[COLOR="Red"] (Exception ex)[/COLOR] { [INDENT]// Fehler beim Öffnen der Datei [COLOR="Red"]Console.WriteLine(ex.Message);[/COLOR][/INDENT] } finally { [INDENT][COLOR="Red"]if (sr != null) sr.Close();[/COLOR][/INDENT] } Console.ReadLine(); } Zitieren
kasumi Geschrieben 16. September 2008 Autor Geschrieben 16. September 2008 er meint, dass die 4 zeile fuer eine konsolenanwendung ist. die du ja wahrscheinlich nicht hast. doch die habe ich, ich zeig euch mal nen ausschnitt aus der logdatei : Wed Mar 02 12:41:36 2005 12:41:36 DR: DRAUTO is 0 (Off) 12:41:37 Informix Dynamic Server Version 7.31.TD5 Software Serial Number AAD#J346331 12:41:38 Informix Dynamic Server Initialized -- Shared Memory Initialized. 12:41:38 Physical Recovery Started. 12:41:38 Physical Recovery Complete: 0 Pages Restored. 12:41:38 Logical Recovery Started. 12:41:41 Logical Recovery Complete. 0 Committed, 0 Rolled Back, 0 Open, 0 Bad Locks 12:41:42 Dataskip is now OFF for all dbspaces 12:41:43 Init operation complete - Mode Online 12:41:43 On-Line Mode 12:41:54 Checkpoint loguniq 12289, logpos 0x226018 12:43:43 Checkpoint Completed: duration was 0 seconds. 12:43:43 Checkpoint loguniq 12289, logpos 0x245258 12:43:43 Informix Dynamic Server Stopped. Wed Mar 02 12:44:05 2005 12:44:05 DR: DRAUTO is 0 (Off) 12:44:06 Informix Dynamic Server Version 7.31.TD5 Software Serial Number AAD#J346331 12:44:07 Informix Dynamic Server Initialized -- Shared Memory Initialized. 12:44:07 Physical Recovery Started. 12:44:07 Physical Recovery Complete: 0 Pages Restored. 12:44:07 Logical Recovery Started. 12:44:11 Logical Recovery Complete. 0 Committed, 0 Rolled Back, 0 Open, 0 Bad Locks gefiltert werden sollen die datum- angaben und die durations also die zeit die da angegeben ist wie hier z.b die 0 die datumangaben und zeiten ändern sich abschnittweise. und diese gefilterten daten sollen in eine textdatei geschrieben werden wie z.b so: 02.03.2005 12:43:43;0; 15.09.08 11:48:26;9; so soll das dann aussehen. und könnt ihr mir helfen? Zitieren
Franzose Geschrieben 16. September 2008 Geschrieben 16. September 2008 Schau dir mal folgenden Links an http://www.galileocomputing.de/openbook/csharp/kap17.htm TextReader and TextWriter In C# Du musst einfach die gesamte logDatei auslesen So zurechtbasteln, wie du es brauchst und wieder in eine andere Datei zurückschreiben. die methoden der string Class helfen dir dabei Zitieren
kasumi Geschrieben 16. September 2008 Autor Geschrieben 16. September 2008 ich komm nich weiter sorry, ich weiß zwar wie das mit dem StartsWith und EndWith in bezug auf einzelne worte funktioniert, aber nicht wenn zwischen wir worten eine zahl steht die ich haben möchte, und das mit dem datum und den uhrzeiten krieg ich auch nich hin, kann mir das denn keiner kurz zeigen, nur ein kleines beispiel? Zitieren
Franzose Geschrieben 16. September 2008 Geschrieben 16. September 2008 ja dann schau dir mal die anderen methoden der string class an. mit split und substring wirst du schon gut weiterkommen. Zitieren
kasumi Geschrieben 16. September 2008 Autor Geschrieben 16. September 2008 ja wäre da das problem nich das ich das noch nie angewandt habe und null ahnung habe, was glaubst du warum ich denn hier bin? weil ich verzweifle, ich bin in ner ausbildung zur fachinformatikerin und werde seit 2 jahren nicht ausgebildet, ich kann fast nichts, und bald soll ich meine prüfung machen. Und helfen will mir auch keiner, vom lesen alleine werd ich leider überhaupt nicht schlau, das probier ich schon seit 2 jahren Zitieren
s0h0 Geschrieben 16. September 2008 Geschrieben 16. September 2008 ach du bist ein madla? ei jungs jetzt helft der jungen dame mal! Zitieren
flashpixx Geschrieben 16. September 2008 Geschrieben 16. September 2008 Und helfen will mir auch keiner, vom lesen alleine werd ich leider überhaupt nicht schlau, das probier ich schon seit 2 jahren Lesen und Lernen und auch ausprobieren. Du erwartest hier im Grunde ein fertiges Beispiel, dadurch lernst Du nicht! Schaue Dir an, wie man eine Datei zeilenweise liest und schreibt, schaue Dir an wie die String-Klassen funktionieren. Überlege Dir, wie Du eben dein Problem mit Hilfe der Tips hier zu lösen ist, es ist alles Dir gesagt worden was Du brauchst, es wird nun von Dir erwartet, dass Du Dich hinsetzt, es anschaust, verstehst und Deinem Problem entsprechend zusammen setzt Phil Zitieren
s0h0 Geschrieben 16. September 2008 Geschrieben 16. September 2008 (bearbeitet) aber zu deiner beruhigung. man muss in der prüfung nicht programmieren können! sozialkunde, it-systeme und uml ist viel wichtiger und gibt mehr punkte! also letztes jahr in der prüfung gab es nur eine aufgabe in der pseudocode gefragt war... http://www.tutorials.de/forum/net-datenverwaltung/221863-c-textdatei-auslesen-brauche-hilfe.html using System; using System.IO; class Test { public static void Main() { string szSrcLine; FileStream fsInput = new FileStream ("Inputfile.txt", FileMode.Open, FileAccess.Read); StreamReader srInput = new StreamReader (fsInput); while ((szSrcLine = srInput.ReadLine ()) != null) { // hier Zeile verarbeiten.... } srInput.Close (); fsInput.Close (); } } Bearbeitet 16. September 2008 von s0h0 Zitieren
kasumi Geschrieben 16. September 2008 Autor Geschrieben 16. September 2008 ja klar bin ich das^^ ein mädel das eigentlich mal programmieren lernen wollte um in die game-branche einzusteigen und zu square-enix zu gehen:( noch fragen? Zitieren
Franzose Geschrieben 16. September 2008 Geschrieben 16. September 2008 sagamal darum geb ich dir ja die links, damit du mal lesen kannst wie die teile funktionieren. Ausbildung heist nicht, zeug vorgekaut zu bekommen. Sondern auch genügend zeit zu haben sich mit sachen beschäftigen zu können. Ich rate dir mal alle webcasts von bernd marquard zu c# und .net dir von der msdn seite zu laden und durchzuackern. auch die galileo openbooks sind dabei sehr hilfreich. Zitieren
s0h0 Geschrieben 16. September 2008 Geschrieben 16. September 2008 oder so lesen: using (StreamReader sr = new StreamReader("$expression$")) { String line; // Read and display lines from the file until the end of // the file is reached. while ((line = sr.ReadLine()) != null) { Console.WriteLine(line); } } Zitieren
kasumi Geschrieben 16. September 2008 Autor Geschrieben 16. September 2008 Lesen und Lernen und auch ausprobieren. Du erwartest hier im Grunde ein fertiges Beispiel, dadurch lernst Du nicht! Schaue Dir an, wie man eine Datei zeilenweise liest und schreibt, schaue Dir an wie die String-Klassen funktionieren. Überlege Dir, wie Du eben dein Problem mit Hilfe der Tips hier zu lösen ist, es ist alles Dir gesagt worden was Du brauchst, es wird nun von Dir erwartet, dass Du Dich hinsetzt, es anschaust, verstehst und Deinem Problem entsprechend zusammen setzt Phil ja du hast recht ich hatte eigentlich mit ner beispiellösung gerechnet ja. Denn hinweise bekomm ich von meinem chef auch immer nur stichwortartig und soll lesen, nur kommt dabei nichts hilfreiches raus, das openbook habe ich mittlerweise fast vollständig gelesen. na gut, dann werd ich halt wieder lesen und auf die erleuchtung warten...merci Zitieren
s0h0 Geschrieben 16. September 2008 Geschrieben 16. September 2008 naja bevor du ein spiel programmierst wuerde ich erstmal die textdatei auslesen using System; using System.IO; namespace FCL_Buch._System_IO { public class Samples_Dateiinhalte { public void Datei_lesen() { // Zeilenweises Lesen aus einer Textdatei string dateiName = @"..\_daten\dateisystem\protokoll.txt"; // Datei öffnen FileStream fs = new FileStream(dateiName, FileMode.OpenOrCreate, FileAccess.ReadWrite); // Stream öffnen StreamReader r = new StreamReader(fs); // Zeiger auf den Anfang r.BaseStream.Seek(0, SeekOrigin.Begin); // Alle Zeilen lesen und an Console ausgeben while (r.Peek() > -1) FclOutput.PrintOut( r.ReadLine() ); // Reader und Stream schliessen r.Close(); fs.Close(); } } } Zitieren
kasumi Geschrieben 16. September 2008 Autor Geschrieben 16. September 2008 hey danke für das beispiel;) hab da wohl ein paar dinge zwischendrin vergessen:D vielen dank, ich schau mal ob ich weiterkomme. Zitieren
s0h0 Geschrieben 16. September 2008 Geschrieben 16. September 2008 ja wenn du weng was gemacht hast und neue spezielle fragen hast dann... Zitieren
TDM Geschrieben 16. September 2008 Geschrieben 16. September 2008 FileStream fs = new FileStream(dateiName, FileMode.OpenOrCreate, FileAccess.ReadWrite); Warum öffnest du lesend und schreibend, wenn du nur lesen willst? OpenOrCreate sollte man hier evtl. auch nicht verwenden - wenn das Ding nicht da ist, dann wird ne Exception geworfen (Du brauchst ja kein leeres Log erstellen, wenn die Datei zum lesen [noch] nicht existiert). [Edit] Ah, ok - sieht aus als wäre es aus irgend einem Buch kopiert - hab nix gesagt. :floet: 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.