C# Textdatei lesen ändern und speichern

Noctuh

Cadet 2nd Year
Registriert
Jan. 2020
Beiträge
28
Hallo ich bin Noah und habe folgendes Problem,
ich lasse mir Werte eines Objektes in eine Textdatei speichern des schaut dann so aus:
Id , Beschreibung , Tankkapazität , Spritverbrauch usw.

Nun ich kann mir sachen in der Datei schreiben lassen und auch auslesen lassen nun ist mein Problem ich wähle mir eines der Objekte aus über die Id nun möchte ich einen Wert ändern zum Beispiel die Tankkapazität dieses soll dann in der Datei geändert und gespeichert werden. Leider habe ich keine Ahnung wie das Funktioniert.

Hier mein Ansatz:


var rangeQuery = (from PKW c in pkwList
where (c.MaxRange > strecke && c.IsActive == true && c.IsInUse == false)
select c).ToList();
DisplayCarsNew(rangeQuery);
if (rangeQuery.Count() > 0)
{
#region Ausgabe bei 1 Fahrzeug
if (rangeQuery.Count() == 1)
{
foreach (PKW pkw in rangeQuery)
{
pkw.IsInUse = true;
}
}
 
Du möchtest also eine Text-Datei als Datenbank nutzen? Und warum verwendest du dann keine Datenbank? SQLite lässt sich zum Beispiel sehr simpel in C# integrieren. Eine DB ist nämlich genau für solche Zwecke gedacht.

Ansonsten wäre die einfachste Lösung, wenn du deine pkwList einfach wieder komplett in die Datei schreibst, dann mit der veränderten Zeile. Je nachdem wie groß die Liste ist, wird das aber irgendwann recht ineffizient.
 
  • Gefällt mir
Reaktionen: Testa2014
Naja ich muss es eben in einer Textdatei machen gibt es keinen weg wenn ich sag es gibt 6 Autos also in der Datei 6 Zeilen und in jeder zeile sind 10 werte kann ich dann nicht sagen wenn ich das und das ändern will ist es zeile 3 und der 6. wert und denn soll es dann ändern oder geht das nicht?
 
Schreib doch einfach die Datei nach jeder Änderung neu. Du hast die Daten ja eh komplett im Speicher und wie Du eine Datei schreibst weißt Du ja schon.
 
  • Gefällt mir
Reaktionen: Baal Netbeck und Aduasen
Bedeutet also ich ändern den Wert lösche die Datei dann und schreibe es neu hinein
 
Normalerweise kann man angeben ob man beim erstellen einer Datei die alte einfach überschreiben will. Check mal deine API dazu. Da brauchst du nichts extra löschen, wenn der Dateiname gleich bleibt.
 
Zuletzt bearbeitet: (Ahhrg typo gefixt)
  • Gefällt mir
Reaktionen: Baal Netbeck
Du musst die Datei nicht löschen, einfach zB mit File.WriteAllText(path, text) in die Datei schreiben. Ist die Datei neu, wird sie angelegt und beschrieben, ist sie bereits vorhanden, wird sie überschrieben. Dazu bastelst du dir eine Funktion, die die pkwList durchgeht und so in einen Text formatiert wie du es gern hättest.
 
  • Gefällt mir
Reaktionen: Valeria, Baal Netbeck und areiland
Zurück
Oben