[erledigt] DIM Felder
Übersicht

CarpeDingsbumsBetreff: [erledigt] DIM Felder |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallöchen
Ich hät da ein Problem... ich habe ein DIM Feld Deklariert, kriege es aber nicht in den Unterprogrammen aufgerufen ... wie kann ich das ändern ?? hauptprogramm: include "unterprogramm.bb" Dim Objects (7,200,30) unterprogramm: Function testobject() Return Objects(0,0,1) End Function allein dieses meckert mir der Kompiler schon an - versteh ich nicht. In der Hilfe stand doch, dim felder wären automatisch global und dazu direkt noch was : wie groß ist ein Dim feld, oder Array, welches ich mit 3 Deklariere ?? global array[3] array[0] array[1] array[2] array[3] ???? hoffe auf schnelle Hilfe, weil habe mein Projekt jetzt diesmal nicht auf Type Felder aufgesetzt, sondern auf DIMs - wär ne echte Katastrophe, wenn dat nun nicht geht! Frohe Weihnachten, David |
||
---- Private nonkommerzielle HP ---
schattenreisen.de.vu Beherrsche Deine Angst |
- Zuletzt bearbeitet von CarpeDingsbums am Di, Dez 26, 2006 16:06, insgesamt einmal bearbeitet
![]() |
pixelshooter |
![]() Antworten mit Zitat ![]() |
---|---|---|
du deklarierst das array, NACHDEM du das unterprogramm aufrufst! | ||
>> Musikerstellung, Grafik und Design: http://www.pixelshooter.net.tc |
CarpeDingsbumsBetreff: ??? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
sorry verstehe nicht ganz was Du damit meinst.
Das DIM Feld habe ich in der ersten Zeile meines Hauptprogrammes definiert mit Dim Objects (7,200,30) irgendwo in nem Unterprogramm verwende ich es dann, und er sagt mir "function not found", da er es auf einmal wegen der klammern für ne Funktion hält, die er aber nirgends findet. Rufe ich es im Hauptprogramm selbst auf, klappt et problemlos (mit eckigen Klammern klappt et leider auch nicht, also Objects [0,0,0] = ...) kann da jemand helfen ? Mfg, David |
||
---- Private nonkommerzielle HP ---
schattenreisen.de.vu Beherrsche Deine Angst |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] ;Haubtprogramm Dim Object(7,200,8) Include "Unterprogramm.bb" ;Unterprogramm Function tesObject() Return Object(1,112,4) End Function Iss aussem Kopf müsste aba Funtzen... |
||
CarpeDingsbums |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hauptprogramm:
Dim Objects (MAXPLAYERS,MAXOBJECTS,30) Function GetObjects (x,y,z) Return Objects(x,y,z) End Function Function SetObjects (x,y,z,var) Objects(x,y,z) = var End Function Beispielaufruf im Unterprogramm: print GetObjects(0,0,1) <<<< Das ist die Krücke die ich mir gebastelt hatte, die auch funzt - aber : Ich finde das relativ unbefriedigend, muss ich gestehen. Deine Lösung ging auch in die Richtung, wenn ich sie richtig verstanden habe. Mache dass jetzt erstma so, um weiter arbeiten zu können, die guten alten Getter&Setter kennen wir ja aussa Objektorientierung... Wäre aber über nen Tipp, wie man es wie im ersten Post erwähnt machen könnte, relativ dankbar! Mfg, David |
||
---- Private nonkommerzielle HP ---
schattenreisen.de.vu Beherrsche Deine Angst |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eigentlich solltest Du ohne Probleme und ohne spezielle Funktionen in deinem Include auf das Array zugreifen können - solange Du das Array vorher deklariert hast. (in deinem ersten Posgt rufst Du erst die Include auf und deklarierst dann das Array, das geht nicht).
Ein array ist immer bei Null beginnend, also ist dim a(3) 4 Felder groß. Das hättest Du aber mit einem simplen Test selbst rausfinden können. Falls Du sie noch nicht hast empfehle ich dir die Deutsche Onlinehilfe, dort wird vieles erklärt. ~VERSCHOBEN~ Dieser Thread passte nicht in das Forum, in dem er ursprünglich gepostet wurde. Sind eher Beginnerfragen. |
||
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 |
CarpeDingsbums |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Vielen Dank !!!
Ich wusste nur nicht, dass man diese Deklaration VOR dem Include machen muss ... dachte das wäre egal! Aber zu der Sache mit dem Array : Das ist in jeder Programmiersprache anders: Bei Blitz habe ich es getestet - und festgestellt, dass ich munter über die Begrenzungen des Arrays hinaus schreiben und lesen kann: Code: [AUSKLAPPEN] global test[3]
for i = 0 to 10 test[i] = i print test[i] next ;i läuft wunderbar! (Nicht nachmachen, leute ^^) daher konnte ich dass also so nicht herausfinden. Dass Arrays nullbasiert sind ,ist mir durchaus bewusst. Allerdings wusst ich nicht, ob die Deklarationszahl (hier 3) auch die Nummer des höchsten Elementes ist - also ob test[3] in diesem Fall schon zu hoch ist, oder nicht. Aber dass Du diese Frage in den Beginner Thread stellst, akzeptiere ich mal ![]() |
||
---- Private nonkommerzielle HP ---
schattenreisen.de.vu Beherrsche Deine Angst |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm... bei mir gibt er einen 'Blitz array subscript out of range' error aus wenn ich versuche ausserhalb zuzugreifen, beziehungsweise einen Index out of Bounds. Du solltest mal den Debugger einschalten ![]() Abgesehen davon wäre es ein Fehler Blitzarrays und Dims miteinander zu verwechseln. Ich kann Dir nur nochmal die OH ans Herz legen. Was die Anzahl an Elementen angeht, so weiss ich durchaus was Du meinst- man verzeihe mir die missverständliche Formulierung. Wie gesagt, Blitz beginnt bei 0 bis hin zum Index, und somit sind die Dims ein Element größer als indiziert. |
||
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 |
CarpeDingsbumsBetreff: danke |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok dann weiss ich ja jetzt bescheid,
vielen Dank noch mal, hab den Thread dann jetzt mal als erledigt markiert Mfg, David |
||
---- Private nonkommerzielle HP ---
schattenreisen.de.vu Beherrsche Deine Angst |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group