C#-Frage bzgl. Dateien einlesen

Diskutiere C#-Frage bzgl. Dateien einlesen im Developer Network Forum im Bereich Hardware & Software Forum; Guten Morgen, ich hab mal wieder eine Frage, hab ne Klasse geschrieben, die Vorname, Nachname, Abteilung, Projekt und Arbeitszeit (in Stunden)...
  • C#-Frage bzgl. Dateien einlesen Beitrag #1
H

Hexer1985

Bekanntes Mitglied
Dabei seit
07.02.2006
Beiträge
146
Reaktionspunkte
0
Ort
Stuttgart / Karlsruhe
Guten Morgen,

ich hab mal wieder eine Frage, hab ne Klasse geschrieben, die Vorname, Nachname, Abteilung, Projekt und Arbeitszeit (in Stunden) einliest und selbiges in eine Datei schreibt, und sämtliche Einträge durch ein , trennt. Soweit kein Problem hab ich auch gut hinbekommen. Nun hab ich ja eine Datei in der sauber zeilenweise diese Daten aufgeschrieben sind, nun will ich eine Statistik anhand dieser Datei erstellen, die mir errechnet, z.B. wieviele Arbeitsstunden innerhalb einer Abteilung abgeleistet werden. Ich hab mir überlegt nun könnte man die Datei ja zeichenweise einlesen, und da eine Trennung durch Kommas gegeben ist könnte ich ja sagen prüf den Namen nach dem 2. Komma, schreib ihn auf und nimm dann die Zahl nach dem 4. Komma und addiere alle. Geht das auch einfacher und wenn nicht wie kann ich selbiges realisieren?

Danke schon im Vorraus!
 
  • C#-Frage bzgl. Dateien einlesen Beitrag #2
U

UnimatrixZero

Bekanntes Mitglied
Dabei seit
27.06.2001
Beiträge
645
Reaktionspunkte
0
Eine einfachere Lösung wird's kaum geben. Allerdings eine flexiblere ;-)

1. Du mußt ja die Daten irgendwie im Speicher halten. Sinnvollerweise in irgendwelchen Klassen/Objekten, die wiederum in einer Struktur (z.B. Liste) stecken. Und Routinen zum Laden und Speichern existieren wahrscheinlich auch schon. Du könntest also Deine Statistik durch eine einfach Iteration über Deine Objektstruktur (im Speicher) erledigen und keine neue Laderoutine schreiben.
Btw.: Wenn Du sowieso schon alles schön in Objekten und Strukturen vorliegen hast, dann kannst Du die Daten auch in einem Rutsch als XML-Datei schreiben und auch wieder lesen. .NET erledigt das für Dich ;-)

2. Die flexibelste Lösung ist, Du steckst Deine Daten in eine Datenbank und erzeugst Deine Statistiken mittels SQL-Abfragen. .NET nimmt Dir da auch eine Menge an Arbeit ab.
 
  • C#-Frage bzgl. Dateien einlesen Beitrag #3
H

Hexer1985

Bekanntes Mitglied
Dabei seit
07.02.2006
Beiträge
146
Reaktionspunkte
0
Ort
Stuttgart / Karlsruhe
Erstmal wie immer danke für die fixe Antwort, auch wenn ich mal wieder net genug versteh ums umzusetzen ;) Also die Aufgabenstellung lautet so:

Projektaufgabe 1:

(a) Speichere Daten über Mitarbeiter, Abteilungen, Projekte, Tätigkeiten

Beispiel:
Hugo Maier arbeitet am 15.03.07 von 11:30 bis 13:00 am Projekt DBI

=> formatiert aufbereitet

(b) Statistik: Liste für alle Abteilungen, zB Summe der Arbeitsstunden pro Monat

Wichtig:
Nicht als Datenbank (SQL, Access), sondern als C# (oder PHP, C++ etc) und Dateien.

Bewertungskriterien:
- Resultat (Programm, Ausdruck, Code) - anschauen, durchsprechen

deswegen kann ich den 2. Vorschlag leider nicht ganz anwenden. Nunmal meinen Code den ich schon habe, wo kann ich denn da ansetzen, ich weiss es ist wohl nicht "schön" programmiert aber zweckdienlich und einfach ;)

using System;
using System.IO;

class App
{
public static void datenerfassung()
{
Console.WriteLine("Wieviele Datensätze möchten sie eingeben?");
int anzahl = Convert.ToInt32(Console.ReadLine());
StreamWriter writer = new StreamWriter(new FileStream("C:\\DB1-Daten.txt", FileMode.Create));

for(int i = 1; i<=anzahl; i++)
{
Console.WriteLine("Geben Sie Ihren Vornamen ein");
string vorname = Console.ReadLine();
writer.Write(vorname + ",");

Console.WriteLine("Geben Sie Ihren Nachnamen ein");
string nachname = Console.ReadLine();
writer.Write(nachname + ",");

Console.WriteLine("Geben Sie Ihre Abteilung ein");
string abteilung = Console.ReadLine();
writer.Write(abteilung + ",");


Console.WriteLine("Geben Sie Ihre Projekt ein");
string projekt = Console.ReadLine();
writer.Write(projekt + ",");

Console.WriteLine("Geben Sie Ihre Arbeitszeit ein");
int arbeitszeit = Convert.ToInt32(Console.ReadLine());
writer.WriteLine(arbeitszeit + "Stunden");
}

writer.Close();
}

public static void statistik()
{
Console.WriteLine("Wollen sie eine Statistik der Arbeitszeit sehen? Bitte dücken sie J oder Y");
char stat = Console.ReadLine();
if (stat == 'Y' || stat == 'y' || stat == 'J' || stat == 'j')
{
StreamReader reader = new StreamReader(new FileStream("C:\\DB1-Daten.txt", FileMode.Open));
do
{

}
while (reader.Peek() != -1);
reader.Close();
}
else
{
return;
}
}

public static void Main()
{
datenerfassung();
Console.WriteLine("Fertig");
}
}

In der Klasse Statistik hab ich nurmal ein wenig rumversucht!
 
  • C#-Frage bzgl. Dateien einlesen Beitrag #4
WhiskeyCola16

WhiskeyCola16

Bekanntes Mitglied
Dabei seit
22.12.2001
Beiträge
971
Reaktionspunkte
1
Ort
Österreich
hmmm... dass man keine db benutzen darf is schade. naja... darf man nun xml dateien verwenden? wär noch akzeptabel. seh mir das mal dateiorientiert an...

lg,
patrick

[Edit] soll's ein konsolenprogramm sein oder mit formularbasierter oberfläche?! [/Edit]
 
  • C#-Frage bzgl. Dateien einlesen Beitrag #5
U

UnimatrixZero

Bekanntes Mitglied
Dabei seit
27.06.2001
Beiträge
645
Reaktionspunkte
0
Bist Du sicher, daß die Aufgabe so einfach gemeint ist?

Mußt Du nicht jeweils eigene Datensätze für Mitarbeiter, Abteilungen, Projekte und Tätigkeiten erstellen und die dann miteinander verknüpfen?

Auf jeden Fall wäre ein besserer Ansatz, die Daten in eine Klasse zu stecken. Und die Objekte dieser Klasse in eine Liste. Diese Liste kannst Du dann mit NET-Mitteln als XML speichern und lesen.
 
  • C#-Frage bzgl. Dateien einlesen Beitrag #6
WhiskeyCola16

WhiskeyCola16

Bekanntes Mitglied
Dabei seit
22.12.2001
Beiträge
971
Reaktionspunkte
1
Ort
Österreich
Bist Du sicher, daß die Aufgabe so einfach gemeint ist?

Mußt Du nicht jeweils eigene Datensätze für Mitarbeiter, Abteilungen, Projekte und Tätigkeiten erstellen und die dann miteinander verknüpfen?

Auf jeden Fall wäre ein besserer Ansatz, die Daten in eine Klasse zu stecken. Und die Objekte dieser Klasse in eine Liste. Diese Liste kannst Du dann mit NET-Mitteln als XML speichern und lesen.

so in der art hätte ichs mir auch gedacht
 
Thema:

C#-Frage bzgl. Dateien einlesen

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.180
Beiträge
1.579.174
Mitglieder
55.879
Neuestes Mitglied
stonetreck
Oben