Autor Beitrag
P@u1 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 117



BeitragVerfasst: Do 15.04.10 20:45 
Vielen Dank für eure Hilfe!

Ich hab leider keine Ahnung von FileStreams und ich glaube das bei dem code den du gerade geschrieben hast noch was fehlt, es wird ja nirgendwo was aus einer datei geladen.
Und wieso greifst du auf b[0] zu, obwohl b bei 1 anfängt?
ich versteh das nicht^^

Kannst du bitte nochmal kurz erläutern wie das mit dem filestream funktioniert?
danke!
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 15.04.10 20:51 
Moin!

user profile iconP@u1 hat folgendes geschrieben Zum zitierten Posting springen:
Ich hab leider keine Ahnung von FileStreams
Das ist natürlich... :? schlecht... :|

user profile iconP@u1 hat folgendes geschrieben Zum zitierten Posting springen:
und ich glaube das bei dem code den du gerade geschrieben hast noch was fehlt, es wird ja nirgendwo was aus einer datei geladen.
Klar wird da was geladen, du musst halt noch den FileStream anlegen, der Teil fehlt, das ist richtig (1 Zeile +Resourcen-Schutzblock; Vorlage in der Klasse weiter oben).

user profile iconP@u1 hat folgendes geschrieben Zum zitierten Posting springen:
Und wieso greifst du auf b[0] zu, obwohl b bei 1 anfängt?
ich versteh das nicht^^
Oh, glatt übersehen. :oops: Habe ich auf 0-basiert umgestellt (solltest du auch tun, dynamische Arrays fangen eh immer bei 0 an, dann spart man sich die Index-Transformation in der Compiler-Magic).

user profile iconP@u1 hat folgendes geschrieben Zum zitierten Posting springen:
Kannst du bitte nochmal kurz erläutern wie das mit dem filestream funktioniert?
danke!
Suche in: Delphi-Forum, Delphi-Library TFILESTREAM :lupe: :les: :think: Sorry, aber das haben wir nun wirklich oft genug hier durchgehechelt... :nixweiss:

Wenn ich´s mir recht überlege, bleib lieber bei deiner Stringliste und warte etwas, das ist insgesamt einfacher. :?

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
jfheins
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 918
Erhaltene Danke: 158

Win 10
VS 2013, VS2015
BeitragVerfasst: Do 15.04.10 20:53 
user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
OK, dann nagel doch einfach gleich das Array auf die Platte. :nixweiss:

Das ist ihm doch zu voluminös ;)
P@u1 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 117



BeitragVerfasst: Do 15.04.10 21:21 
danke für eure hilfe, ich habs inzwischen mit dem filestream prinzipiell hingekriegt, schnelligkeit, dateigröße usw. muss ich noch testen

Edit: es gibt wieder ein problem, ein array of boolean kann wohl nur die maximale länge
Array[1..1033337] of Boolean;
haben, wenn ich die 1033337 um nur 1 erhöhe kommt sofort stack overflow
woran kann das liegen, wie kann ich das ändern?

Edit: Derzeitiger Quelltext:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
procedure TForm1.Button1Click(Sender: TObject);
var
  myArray: Array[1..1033336of Boolean;
  MyStream: TFileStream;
  i: integer;
begin
  randomize;
  for i := 1 to 103336 do
  begin
    if random(2)=1 then
    myArray[i]:=true
    else
    myArray[i]:=false;
  end;

  MyStream:=TFileStream.Create('.\MeineDatei.txt', fmCreate);
  MyStream.Write(MyArray,SizeOf(MyArray));
  myStream.Free;
end;


Zuletzt bearbeitet von P@u1 am Do 15.04.10 21:49, insgesamt 1-mal bearbeitet
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: Do 15.04.10 21:48 
Hi :)

Der Stack hat nur eine vordefinierte, fixe Größe. Die kannst du aber einstellen.

Wenn du solch ein Array gerade zum ersten Mal anlegst: Wie hast du die Daten denn bisher vorliegen gehabt? Vielleicht ergibt sich ja daraus eine schöne Möglichkeit.
Müssen eigentlich immer alle geladen werden, oder brauchst du stets nur einzelne, kleine Teile?

lg,

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
P@u1 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 117



BeitragVerfasst: Do 15.04.10 21:52 
wie vorher schonmal geschrieben, ich habe die daten noch nicht erstellt, weil ich erst gucken wollte in welchem format die am besten sind, ich kann die daten z.B. als array of boolean erstellen.

im späteren einsatz werden immer nur einzelne boolean werte gebraucht, aber relativ häufig.

Edit: Die stack größe steht in den optionen auf $00100000
auf welchen wert sollte ich ihn setzen?
Boldar
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1555
Erhaltene Danke: 70

Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
BeitragVerfasst: Do 15.04.10 22:02 
Irgendwie klingt das so, als könnte man das gesamte Konzept noch verbessern.
Was genau macht denn dein programm?
P@u1 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 117



BeitragVerfasst: Do 15.04.10 22:20 
Also es geht darum wahrscheinlichkeiten/strategien beim poker auszurechnen.

Dazu habe ich gelesen, dass es 2 gute Möglichkeiten gibt:
1. Man macht eine Simulation mit einer begrenzten Anzahl an Zufallswerten
2. Man geht alle (wirklich alle) Möglichkeiten durch

Ich will alle Möglichkeiten durchgehen :D

Nehmen wir an man spielt 1 gegen 1 und man ist beim flop dran (man hat selbst 2 karten (bekannt), der gegner hat 2 karten (unbekannt) und 3 gemeinschaftskarten liegen in der mitte (bekannt).
Also sind noch 4 Karten unbekannt: Der Turn, der River und die zwei Karten des Gegners.
Nun kann man systematisch alle Möglichkeiten durchgehen und gucken, bei wievielen man davon verliert/gewinnt.
Das kann allerdings ein paar Sekunden oder so dauern, fände es besser wenn es schneller/sofort geht.
Deshalb dachte ich ,gehe ich das einmal (wird wahrscheinlich sehr sehr lange dauern) für jede der 25989600 Möglichen Anfangskombinationen (52 über 2) * (50 über 3) durch und bestimme jeweils die Wahrscheinlichkeiten auf Gewinn/Verlust.
Danach wollte ich dann die Ergebnisse abspeichern, zunächst erstmal vereinfacht nur mit Wahrheitswerten, ob die Wahrscheinlichkeit auf Gewinn über oder unter 50% ist.

Dann kann man später die Datei laden, gibt an welche Anfangskombination vorliegt und das Programm sagt einem, ob die Chancen über/unter 50% liegen.

Das soll dann später noch was ausgebaut werden, aber erstmal so zum Konzept^^

Wenn ihr bessere Möglichkeiten seht, bitte her damit, glaube meine ist relativ schlecht :D Evtl wäre es einfach besser einfach die Möglichkeit von oben (ohne Abgleich mit Datei zu optimieren).
Ich wollte erstmal mit der Speicherung der Datei anfangen.

Edit: wenn ich mir das gerade nochmal so durchlese kommt mir das irgendwie lächerlich vor :D 25989600 Möglichkeiten durchzugehen wird wahrscheinlich Jahre (wirklich Jahre) dauern, wenn die Einzelfallbestimmung schon mehrere Sekunden dauert, ich muss mir wohl nen neues Konzept ausdenken
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 15.04.10 22:22 
Moin!

user profile iconP@u1 hat folgendes geschrieben Zum zitierten Posting springen:
Edit: Die stack größe steht in den optionen auf $00100000
auf welchen wert sollte ich ihn setzen?
Lass die Finger vom Stack und nimm endlich ein dynamisches Array, das liegt auf dem Heap, da ist genug Platz. Dein (lokales) statisches Array passt nicht auf den Stack, das ist der Grund für den Fehler. :idea:

cu
Narses

//EDIT:
user profile iconP@u1 hat folgendes geschrieben Zum zitierten Posting springen:
ich muss mir wohl nen neues Konzept ausdenken
Jup, das würde ich auch sagen.

_________________
There are 10 types of people - those who understand binary and those who don´t.