Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Random-Frage (https://www.delphipraxis.net/64057-random-frage.html)

cruso 28. Feb 2006 11:00

Re: Random-Frage
 
So! Also mein Problem ist gelöst! Jetzt kommt nie 2mal die gleiche Zahl direkt hintereinander:

Delphi-Quellcode:
//...
  x:=Form1.ListBox1.Items.Count;
  //----
  Randomize;
  y:=StrToInt(Label1.Caption);
  z:=Random(x);
  if z=y then begin
  While (z=y) do begin
  z:=Random(x)
  end;
  Label1.Caption:=IntToStr(z);
  end else begin
  Label1.Caption:=IntToStr(z);
  end;

Ist zwar net die feinste Art aber an statt des Labels könnte man es auch in ner Datei abspeichern.

turboPASCAL 28. Feb 2006 11:05

Re: Random-Frage
 
Zitat:

Zitat von cruso
Ist zwar net die feinste Art aber an statt des Labels könnte man es auch in ner Datei abspeichern.

:gruebel: In ner Datei abspeichern?

Warum machst du denn das so Umständlich mit einem Label und so ? Hast du mal den Code von oben Versucht?

cruso 28. Feb 2006 11:14

Re: Random-Frage
 
Zitat:

Zitat von turboPASCAL
Warum machst du denn das so Umständlich mit einem Label und so ? Hast du mal den Code von oben Versucht?

Den Code von oben hab ich net probiert, da ich das ganze in einer Datei abspeichern muss, damit es auch beim nächsten programmstart sich net wiederholt.



Weis irgendjemand wie man am einfachsten einen String in einer Datei abspeichern kann? Warum geht folgendes nicht?

Delphi-Quellcode:
s.SaveToFile(Filename);

cruso 28. Feb 2006 11:25

Re: Random-Frage
 
Eine Frage? Warum endet folgender Code in einer Endlisschleige und wie wäre es richtig?

Delphi-Quellcode:
  x:=Form1.ListBox1.Items.Count;
  //----
  if x>0 then begin
  Randomize;
  y:=StrToInt(Form3.Label1.Caption);
  z:=Random(x);
  if z=y then begin
  While (z=y) do begin
  z:=Random(x)
  end;
  Form3.Label1.Caption:=IntToStr(z);
  end else begin
  Form3.Label1.Caption:=IntToStr(z);
  end;
  end else z:=0;

Diese Frage hat sich erledigt! Da ich eine ListBox verwende muss es if x<0 heißen. :lol:

turboPASCAL 28. Feb 2006 11:34

Re: Random-Frage
 
Zitat:

Zitat von cruso
Zitat:

Zitat von turboPASCAL
Warum machst du denn das so Umständlich mit einem Label und so ? Hast du mal den Code von oben Versucht?

Den Code von oben hab ich net probiert, da ich das ganze in einer Datei abspeichern muss, damit es auch beim nächsten programmstart sich net wiederholt.

Hm, verstehe ich jetzt nicht. Es soll beim Programmstart nicht mit der letzten Zahl (von dem letzten Programm start) begonnen werden ? Richtig ?



Zitat:

Zitat von cruso
Weis irgendjemand wie man am einfachsten einen String in einer Datei abspeichern kann? Warum geht folgendes nicht?

Delphi-Quellcode:
s.SaveToFile(Filename);

Du kannst doch einfach eine Ini-file benutzen.

Delphi-Quellcode:
procedure SaveOldValue...
begin
  with TIniFile.Create(ChangeFileExt(ParamStr(0), 'ini')) do
  begin
    try
      WriteString('AlteZufallszahl', 'Value', InttoStr(AlteZahlAlsString));
      //  WriteInteger('AlteZufallszahl', 'Value', InttoStr(AlteZahlAlsInteger));
    finally
      Free;
    end;
  end;
end;
Erklärung:

Es wird eine Inidatei angelegt die den selben Namen hat wie das Programm ( ParamStr(0) ).

Delphi-Quellcode:
with TIniFile.Create(ChangeFileExt(ParamStr(0), 'ini')) do
Kurtzform für:
Delphi-Quellcode:
var AnyIniFile: TInifile;
begin
  AnyIniFile := TIniFile.Create(...
  try
    AnyIniFile.WriteInteger(...
    //...
  finally
    AnyIniFile.free;
  end;
end;

Nils_13 28. Feb 2006 13:09

Re: Random-Frage
 
Jetzt nur mal interesshalber: Warum darf die selbe Zahl beim nächsten Programmstart nicht auftauchen ? Irgendwann hat es sich ausgerandomt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:37 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz