'Random' - Zahlen speichern?

Hallo.

Ich würde gerne ein einfaches Form erstellen. - mit einem Button. Wenn ich den Button drücke soll „er“ mir über eine Message Box eine Zufallzahl(Random 1-15) zurückgeben. Allerdings soll diese Zahl irgendwo gespeichert werden damit sie beim nächsten mal „drücken“ des Buttons nicht wieder rausgeschrieben werden.

Ein Bespiel: ich drücke auf den button und er gibt mir eine zahl zurück zb. 12 beim nächsten mal 5,3 usw… aber er kann zb mir jetzt nicht wieder die zahl 12,5,3 zurückgeben. Wie mach ich das am besten? Mit speicher in einem Text File? Kann mir da jemand helfen ich steh da vollkommen an…! Kann mir da vielleicht sogar jemand mit einem Code helfen??

danke …
mfg christian

Auch hallo.

Ich würde gerne ein einfaches Form erstellen. - mit einem
Button. Wenn ich den Button drücke soll „er“ mir über eine
Message Box eine Zufallzahl(Random 1-15) zurückgeben.
Allerdings soll diese Zahl irgendwo gespeichert werden damit
sie beim nächsten mal „drücken“ des Buttons nicht wieder
rausgeschrieben werden.

Wie wäre es mit einem ‚Stack‘ ? Damit legt man die Feldlänge erst bei Laufzeit fest :wink: Mit pull und push kann man die Zahlen dann bearbeiten (zumindest unter C++)

Kann mir da
vielleicht sogar jemand mit einem Code helfen??

…schon recherchiert unter http://www.codeproject.com ?
Suche nach ‚stack button‘ ergibt einiges an Treffern…

HTH
mfg M.L.

Hmmmm… Weiss nicht ob das das richtige ist.!
Weil auch wenn der Computer abgedreht bzw. das Programm geschlossen wird sollen diese Zahlen beim erneuten öffnen des Programms nicht wieder angezeigt werden. Das heisst die Zahlen müssen irgendwo gespeichert werden??? - oder:smile:

danke

Hallo nochmal.

Hmmmm… Weiss nicht ob das das richtige ist.!
Weil auch wenn der Computer abgedreht bzw. das Programm
geschlossen wird sollen diese Zahlen beim erneuten öffnen des
Programms nicht wieder angezeigt werden. Das heisst die Zahlen
müssen irgendwo gespeichert werden??? - oder:smile:

Da gibt es zwei Möglichkeiten: Speichern der Zahlen in eine DB (SQL Server mit SQL Befehlen) oder Speichern in eine (txt)-Datei via FileDialog.

HTH
mfg M.L.

…Speichern in eine (txt)-Datei via FileDialog…

Genau das meine ich! Aber wie mach ich das??? Gibts da ein Code beispiel?? Random alleine ist kein Problem aber nur diese spezial form ist ein bisschen komisch für mich:smile:

bitte um hilfe und danke das du mir schon geholfen hast…
danke christian

Hallo zum 3.Mal

…Speichern in eine (txt)-Datei via FileDialog…

Genau das meine ich! Aber wie mach ich das??? Gibts da ein
Code beispiel?? Random alleine ist kein Problem aber nur diese
spezial form ist ein bisschen komisch für mich:smile:

Das Stichwort heisst ‚System.IO.StreamWriter‘ oder ‚…StringWriter‘
Erster Treffer mit System.IO.StringWriter: http://www.codeproject.com/aspnet/DAtaGridExportToEx…

HTH
mfg M.L.

Danke für deine Hilfe…

Hmm hab das probiert (wirklich danke für deine hilfe): aber ich hab da noch ein problem und zwar das er mir immer die zufallszahl überschreibt in der datei. sprich wenn ich auf den button klicke und er gibt mir die random zahl: zb 5 aus und nacher drück ich nochmal und er gibt mir 12 aus dann steht nicht 5 12 drinnen sondern nur 12 - überschrieben und das soll ja nicht sein.
Hier ein Ausschnitt aus meinem Code:


private void button2_Click(object sender, System.EventArgs e)
{
Random r = new Random();
s= Convert.ToString(r.Next(1,15));
System.Windows.Forms.MessageBox.Show(s);
this.save();
}

public void save()
{
StreamWriter writer = new StreamWriter(„c:\ausgabe.txt“);
writer.Write(this.s.ToString());
writer.Write("/n"); //geht nicht !!!
writer.Close();
}


Wie kann ich da irgendein Leerzeichen reinmachen das er die zahl nicht überschreibt.

Bitte um hilfe…
danke

Hallo zum 4.Mal.

Danke für deine Hilfe…

Bitte :smile:

Hmm hab das probiert (wirklich danke für deine hilfe): aber
ich hab da noch ein problem und zwar das er mir immer die
zufallszahl überschreibt in der datei. sprich wenn ich auf den
button klicke und er gibt mir die random zahl: zb 5 aus und
nacher drück ich nochmal und er gibt mir 12 aus dann steht
nicht 5 12 drinnen sondern nur 12 - überschrieben und das soll
ja nicht sein.

…war da auf der Seite von Codeproject nicht ein ‚append‘-Befehl dabei ? Auch dieses Stichwort kann dort gefunden werden :wink:

Hier ein Ausschnitt aus meinem Code:

Hm, C# 1.1 oder 2.0 ?

HTH
mfg M.L.

Hallo!

Nachdem die andere Diskussion ja nicht wirklich zu einem Ergebnis führt: Sehe ich das richtig, dass Du eigentlich nur die Zahlen von 1-15 zufällig permutieren und bei jedem Klick die nächste anzeigen musst?

Dann würde ich aus dem Stand folgendes probieren: (rein aus dem Kopf und sicher nicht die effizienteste Methode)

class Permute
{
 private ArrayList \_numbers;
 public Permute() {}
 public void Fill()
 {
 \_numbers = new ArrayList();
 Random rnd = new Random();
 for (int i=0; iJetzt müsstest Du nach Aufruf von Fill() in der ArrayList die permutierten Zahlen haben. Ein einfacher Zähler, an welcher Stelle Du gerade bist, kann dann das Weiterschalten auf Knopfdruck realisieren.
Zum Abspeichern der ArrayList (damit dieses beim nächsten Programmstart wieder eingelesen werden kann) könntest Du z.B. einen _System.Runtime.Serialization.Formatters.Binary.BinaryFormatter_ verwenden. Damit kannst Du einfach mit einem Aufruf die ganze ArrayList in eine Datei schreiben und auch wieder rauslesen:

    public void Save(string filename)
    {
     BinaryFormatter bf = new BinaryFormatter();
     using (FileStream fs = new FileStream(filename, FileMode.Create))
     {
     bf.Serialize(fs, \_numbers);
     }
    }
    
    public void Load(string filename)
    {
     BinaryFormatter bf = new BinaryFormatter();
     using (FileStream fs = new FileStream(filename, FileMode.Open))
     {
     \_numbers = (ArrayList)bf.Deserialize(fs);
     }
    }



Ok?

Gruß,
Martin

Hallo.

So Append ist auch fertig alles kein problem jetzt schreibt er mir die zahlen untereinander ins txt file? Aber wie kann ich diese jetzt alle so aulesen damit ich sie mit der neuen random zahl vergleichen kann? Also jetzt fehlt mir nur mehr dieses vergleichen ob eine zahl schon mal war…

Hier der code den ich schon mal habe:

private void button2_Click(object sender, System.EventArgs e)
{
Random r = new Random();
s= (r.Next(1,15));
if(l==s)
{System.Windows.Forms.MessageBox.Show(„schon vorhand“);
}
else
{
System.Windows.Forms.MessageBox.Show(Convert.ToString(s));
this.save(); }
}

public void save()
{
if (!File.Exists(„c:\aausgabe.txt“))
{

using (StreamWriter sw = File.CreateText(„c:\aausgabe.txt“))
{
sw.WriteLine(this.s.ToString());

}
}

using (StreamWriter sw = File.AppendText(„c:\aausgabe.txt“))
{

sw.WriteLine(this.s.ToString());
}

}

public void auslesen()
{

if (!File.Exists(„c:\aausgabe.txt“))
{
Console.WriteLine("{0} does not exist.");
return;
}
StreamReader sr = File.OpenText(„c:\aausgabe.txt“);
l = Convert.ToInt32(sr.ReadToEnd());

}


Bitte um hilfe wie kann ich jetzt herausfinden ob meine zahl schon mal war???
dankkkkkke
christian