Entwickler-Ecke

Basistechnologien - Int in eine Datei schreiben


Dang1001 - Fr 30.04.10 19:49
Titel: Int in eine Datei schreiben
Hallo zusammen

ich bin neu hier und erlerne auch gerade erst die Programmier-Sprache.

nun habe ich da ein kleiner Projekt wo eine zufällige Anzahl von Zufalls-Daten in eine Datei schreibe muss.
Aber irgendwie will das nicht wirklich gehen. Wenn ich anstatt der Zahlen einen String von Hand eingebe dann schreib er mir diesen String in die Datei jedoch keine Zufallsdaten.
Wahrscheinlich ist es echt simple, jedoch komme ich gerade nicht weiter:
Anbei den bisherigen Code.


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
            FileStream fs = new FileStream("D:\\tests\\Test.txt", FileMode.Create);
            StreamWriter sw = new StreamWriter(fs);
 
             Random b = new Random();
            int min = 100;
            int max = 1000;
            int a = b.Next(min, max);


            for (int i = 0; i < a; i++)
            {
                Random Daten = new Random();
                int c = Daten.Next(min, max);
                sw.WriteLine(c);
                //sw.WriteLine("Hallo du da"); das funktioniert wenn ich es teste!               
            }
          
            sw.Close();




Vielen Dank schonmal

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Th69 - Fr 30.04.10 20:07

Dein Code müßte auch Zahlen in die Datei schreiben.
Du solltest jedoch 'Random Daten = new Random();' aus der Schleife löschen und davor schreiben, da du sonst immer gleiche Zahlen erzeugst (weil der Zufallszahlengenerator immer wieder mit der selben Zeit (in Sekunden) initialisiert wird).


Dang1001 - Fr 30.04.10 20:16

Hallo

Das mit der Random Daten = new Random(); habe ich gemacht und nun schreib er mir verschieden Zahlen in die Datei aber nur wenn ich etwas dazuschreibe wie " Test" Oder So.


JüTho - Fr 30.04.10 20:25

Hallo und :welcome:

Bei mir funktioniert es direkt. Nach der Hilfe ist das auch klar: Es gibt eine Variante von StreamWriter.WriteLine, die eine int speichert.

Oder hast du noch einen anderen Code benutzt, den du hier nicht angibst?

Jürgen


Dang1001 - Fr 30.04.10 20:26

Anbei noch
wenn ich das so mache dann schreib er mir mir in die Datei "Za198" also das "Za" und die Zufallszahl.
wenn ich aber die Zeile mit dem "Za" rauslösche oder auch nur "Z" schreibe, dann schreib er garnichts in die Datei.


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
         for (int i = 0; i < a; i++)
            {
                int c = Daten.Next(min, max);
                sw.Write("Za");
                sw.WriteLine( c);
                
            }



Gruß Dany

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


JüTho - Sa 01.05.10 08:58

Genau so funktioniert es bei mir, wie schon gesagt:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
static void Main()
{
  FileStream fs = new FileStream(
    Path.Combine( Environment.CurrentDirectory, "Test.txt"), FileMode.Create);
  StreamWriter sw = new StreamWriter(fs);
 
  Random Daten = new Random();
  int min = 100;
  int max = 1000;
  int a = Daten.Next(min, max);

  for (int i = 0; i < a; i++)
  {
    int c = Daten.Next(min, max);
    sw.WriteLine(c);
  }
  sw.Close();    
}

Ich habe lediglich die Random-Instanz und den Dateipfad geändert. Es funktioniert wirklich! Jürgen

PS. Bitte achte künftig selbst darauf, den Code als solchen zu markieren: "Bereiche" öffnen, C# wählen, Plus-Button.