Max. Größe von Dimfeldern und Blitz Arrays

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Marek

Betreff: Max. Größe von Dimfeldern und Blitz Arrays

BeitragSo, Okt 28, 2007 16:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Kanns sein, dass die Größe von Eindimensionalen Dimfeldern und Blitz Arrays auf 24-Bit(16777216) festgelegt ist? Ich brauche leider 32-Bit-Felder, hat jemand eine Alternativ Lösung?
MfG Marek
Wer lesen kann ist klar im Vorteil...
 

ChristianK

BeitragSo, Okt 28, 2007 16:11
Antworten mit Zitat
Benutzer-Profile anzeigen
32-Bit wären also 4294967296 Einträge im Dim-Feld. Ich geh mal davon aus, dass du Integer speichern willst.
Das macht dann *Taschenrechner benutz* genau 16 Gigabyte ( ! ) Daten. Bist du dir sicher, dass du da keinen Fehler machst? Wink
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
 

Dreamora

Betreff: Re: Max. Größe von Dimfeldern und Blitz Arrays

BeitragSo, Okt 28, 2007 16:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Marek hat Folgendes geschrieben:
Kanns sein, dass die Größe von Eindimensionalen Dimfeldern und Blitz Arrays auf 24-Bit(16777216) festgelegt ist? Ich brauche leider 32-Bit-Felder, hat jemand eine Alternativ Lösung?
MfG Marek


Und jetzt bitte nochmal das genaue Problem.

Die Fragestellung ergibt nämlich 0 Sinn.

Die Arrays etc sind auf garnichts festgelegt. Man kann solange was rein legen wie es RAM hat.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Marek

BeitragSo, Okt 28, 2007 16:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, ich will natürlich keine 4MRD Felder erstellen^^
Aber ich brauche mehr wie 16MIO Felder... Sprich ich brauche eine höhere maximale Felderzahl. Deswegen komm ich da auf die 4 Byte^^

[Edit]
Das hier solte ein Programm zum Primzahlen berechnen werden. Allerdings kommt es nur bis zu der Zahl 16777213 Sad

Code: [AUSKLAPPEN]
Graphics 400,250,0,2
b=Input("Maximale Zahl:")
Const tozahl=100000000
Dim Wurzeln#(16000000,10)
Print "Phase 1/2: Vorbearbeitung"
For var=3 To tozahl
   var2=var-xvar*16000000
   If var2=16000000 Then
      var2=var2-16000000
      xvar=xvar+1
   EndIf
   Wurzeln#(var2,xvar)=Ceil(Float(var)^0.5)
Next

Type prim
   Field zahl
End Type
n.prim=New prim
n\zahl=2
out=WriteFile("primzahlen.txt")
WriteLine out,"2"
Print "Phase 2/2: Bearbeitung"

For var=3 To tozahl
   var2=var-xvar*16000000
   If var2=16000000 Then
      var2=var2-16000000
      xvar=xvar+1
   EndIf
   For n.prim = Each prim
      If n\zahl>Wurzeln(var2,xvar) Then Exit
      a#=Float(var)/Float(n\zahl)
      If Ceil#(a#)=Floor#(a#) Then ret=1 : Exit
   Next
   If Not ret=1 Then
      WriteLine(out,var)
      n.prim=New prim
      n\zahl=var
      x=x+1
      If x=1000 Then
         Print var
         x=0
      EndIf
   EndIf
   ret=0
Next
CloseFile out
Print "Done :P"
WaitKey
End


Warum ist das so? Eigentlich kann es nur an den Dim Feldern liegen...
MfG Marek

BladeRunner

Moderator

BeitragSo, Okt 28, 2007 18:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Dim test (18000000)
test(17000000) = 345
Print test(17000000)
WaitKey()


Womit der Fehler de facto woanders zu suchen ist.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

Marek

BeitragSo, Okt 28, 2007 18:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm, das ist echt seltsam... Sobald er die Zahl erreicht hat, wird das fenster weiß (einige Sekunden lang) und dann gibt er mit "done Razz" aus, also ist er alles durchgegangen...
Wer lesen kann ist klar im Vorteil...

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group