C# Windows Form ListView mit .txt füllen, kann mir jemand helfen?

1 Antwort

Hallo Pataya321,

auch wenn die Arbeit mit Datenbanken höchst wahrscheinlich effizienter sein wird, möchte ich dir trotzdem deine Frage beantworten. Vor allem weil ich damals ähnlich angefangen habe.

Grundsätzlich vorweg: Ich gebe hier keine using-Direktiven an. In Visual Studio kannst du fehlende usings ganz einfach nachträglich hinzufügen.

Du hast ja bereits gut beschrieben, wie ein Datensatz aussieht, daher zunächst die Methode, um eine Zeile Daten zu verarbeiten:

private ListViewItem GetListViewElement (string zeile)
{
// Spalte die Zeile in die einzelnen Daten auf
string[] daten = zeile.Split(';');

// Erstelle ein ListViewItem
ListViewItem lvi = new ListViewItem(daten[0]);
// daten als Tag speichern
lvi.Tag = daten;

// Füge weitere Daten für die weiteren Spalten hinzu
string[] restlicheDaten = new string[daten.length-1];
Array.Copy(daten, 1, restlicheDaten, 0, daten.lenght-2); // Minus 2, damit das Passwort nicht mit angezeigt wird.
lvi.SubItems.AddRange(restlicheDaten);
}

Als nächstes kümmern wir uns um das Einlesen der Textdatei und das Einfügen der ListViewItems in die ListView.

private void AddFileToListView(string path)
{
// Einlesen der Zeilen
string[] zeilen = File.ReadAllLines(path);

// alle Datensätze durchgehen
foreach (string zeile in zeilen)
{
liste_daten.Items.Add(GetListViewElement(zeile));
}
}

Eigentlich sollte dein Problem damit gelöst sein. Ich kann dir aber nicht versprechen, dass es funktioniert, ich habe das ganze ohne IDE geschrieben. Solltest du irgendwelche Probleme/Fragen haben oder es zu Fehlern kommen, kannst du mir gerne schreiben.

Mit freundlichen Grüßen


p.s.:
Eine Alternative zur Datenbank wäre für den Anfang eventuell auch eine XML-Datei. Einfach eine Klasse "User" erstellen und diese Serialisieren.


DerHackerWolf  03.01.2016, 14:25

Das wichtigste habe ich natürlich vergessen:
Am Ende der GetListViewElement musst du noch ein

return lvi;

einfügen, ansonsten gibt die Methode nicht das ListViewItem zurück.

0