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

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

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?

StreamReader sr = new StreamReader(@"C:080915 von dl_re21peters.log");

Normalerweise wird hier ein Pfad erwartet wie "C:\dl_re21peters.log". :rolleyes:

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. :P

was meintst du mit zeile verwenden? ich hab den pfad geändert so wie du meintest aber er compiliert nicht fehlerfrei.

er meint, dass die 4 zeile fuer eine konsolenanwendung ist. die du ja wahrscheinlich nicht hast.

ja dann poste mal, was der gute dir sagt

damit wir dir auch mal helfen können

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();

}

:rolleyes:

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?

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?

ja dann schau dir mal die anderen methoden der string class an.

mit split und substring wirst du schon gut weiterkommen.

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 :(

ach du bist ein madla?

ei jungs jetzt helft der jungen dame mal!

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

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 von s0h0

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?:D

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.

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);

}

}

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

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();

}

}

}

hey danke für das beispiel;)

hab da wohl ein paar dinge zwischendrin vergessen:D

vielen dank, ich schau mal ob ich weiterkomme.

ja wenn du weng was gemacht hast und neue spezielle fragen hast dann...

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:

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.