Eingegebenes speichern in C#?

3 Antworten

Im einfachsten Fall schreibt man den Inhalt einer Variable einfach in eine (Text)Datei.:

Demo.cs:

using System;
using System.IO;

class Prog{
  public static void Main(string[] args){

    String savePath = Path.GetTempPath() + "My_Name_File.txt"; //wo ist es gemütlicher als im Tempordner?
    String name = "Unbekannter";

    if (!File.Exists(savePath)){
      Console.WriteLine("Kein Gespeicherter Name gefunden!");
      Console.WriteLine("Gib Deinen Namen ein: ");
      name=Console.ReadLine(); //Name per Tastatur abfragen

      File.WriteAllText(savePath, name); //Name in Datei schreiben
    }
    else {
      Console.WriteLine("Datei {0} gefundem!", savePath);
      Console.WriteLine("Lese Name aus Datei");
      name = File.ReadAllText(savePath); //Name aus Datei lesen
    }
     
    Console.WriteLine("Hallo {0} ", name);

    Console.WriteLine("press any key");
    Console.ReadKey();
  }
}

PS: beim 2. Start fragt das Programm nicht mehr nach Deinem Namen.

Wie gesagt, der primitivste Weg. (man bekommt immer nur eine Variable in eine Datei😁)

Ich fange jetzt nicht an eine Unterrichtsstunde in C# zu abzuhalten.

Sowas gehört Quasi zum Grundwissen und es gibt Millionen Documentationen im Netz.


Erzesel  16.06.2024, 18:00

PS kleiner Trick, wenn Du für solchen Pipifax nicht gleich VisualStudio anwerfen willst. Das unter Windows standardmäßig installierte Powershell hat einen kleinen schmutzigen C# Compiler an Board.

einfach in die Powershell-Console einfügen:

Add-Type -TypeDefinition @'
//hier Dein C# code...
using System;
class Prog{
    public static void Main(string[] args){
        Console.WriteLine("Hallo Welt");
        Console.WriteLine("press any key");
        Console.ReadKey();
    }
}
//...bis hier
'@ -OutputType ConsoleApplication -OutputAssembly "$pwd/Demo.exe"
0
Palladin007  16.06.2024, 19:24

Noch ein Stichword oben drauf: System.Text.Json
Als JSON Serialisiert lassen sich auch mehr Daten speichern, ohne dass man alles selber machen muss.
Aber das setzt natürlich etwas Grundwissen voraus, z.B. wie man Klassen nutzt.

1
Erzesel  16.06.2024, 20:18
@Palladin007

Ich wollte ihn nicht mit dergleichen überfordern.

JSON oder XML setzt voraus, das man mehrere zu lesenden/schreibenden Variablen in einem Objekt "zusammenhält".

Etwas simpler könnte man auch mit Writeline/Readline einzelne Variablen sequenziell in einen Filestream schreiben/lesen. ...oder die Variablen ohne Typeconversion zu/von String gleich binär in einem BinaryStream behandeln (https://www.tutorialspoint.com/csharp/csharp_binary_files.htm)

Alles hat Vor- und Nachteile.

Es gibt 1000 Wege.

0

Dafür gibt es Dateien.


FrageLukas777 
Beitragsersteller
 16.06.2024, 16:40

wo kann ich die aufrufen beziehungsweise abfragen

0
Destranix  16.06.2024, 16:41
@FrageLukas777

Ich kenne mich mit C# nicht aus. Aber es gibt vermutlich eine "File"-Klasse im API oder so etwas.

Am besten googelst du mal nach einem C#-Tutorial für Files.

2
Suiram1  16.06.2024, 16:45
@FrageLukas777

mit File.WriteAllText("meineDatei.txt", "TestInhalt");

kannst du in eine Datei reinen Text schreiben und mit

string inhalt = File.ReadAllText("meineDatei.txt"); kannst auf den Inhalt zugreifen.

Allerdings musst da noch ein Datenformat wie z.B. Json genutzt werden um die Daten ordentlich abzuspeichern und zu lesen allerdings so kannst du erstmal reinen Text schreiben/lesen.

1

Das kommt auf die Art der Information an, die du speichern willst. Du kannst Daten in Textform zB in Textdateien speichern, dann sind diese Daten aber nur lokal vorhanden. Alternativ kannst du auch eine Datenbank anbinden, das wäre aber schon etwas komplizierter. Wenn es um sensible Nutzerdaten wie Passwörter geht, solltest du außerdem noch auf die Sicherheit achten und diese zB vor dem Speichern verschlüsseln.