LoadMesh(string$) geht nicht???

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

occide

Betreff: LoadMesh(string$) geht nicht???

BeitragSo, Jul 17, 2005 21:05
Antworten mit Zitat
Benutzer-Profile anzeigen
warum funktioniert das obige nich? openfile(string$) funktioniert doch, warum geht das bei loadmesh nicht?? ich krieg zuviel. bitte helft mir

Ninja

BeitragSo, Jul 17, 2005 21:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Schonmal geprüft ob die datei existiert, oder du auch die richtige extension angegeben hast? Wird das format von B3D unterstützt? Was sagt der debugger?

mfg
Ninja
 

occide

BeitragSo, Jul 17, 2005 21:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Global test$="fw42lowpoly"
ob\entity=LoadMesh("./2/"+test+".x")
geht nicht
ob\entity=LoadMesh("./2/fw42lowpoly.x")
geht
debugger kann ich nich überprüfen, weils zu schnell abstürzt

(nach dem absturz meldet er "entity does not exist")

greetings

Ninja

BeitragSo, Jul 17, 2005 22:13
Antworten mit Zitat
Benutzer-Profile anzeigen
na da hast du deine antwort, sieh zu warum er meint das das entity nicht existiert.
 

occide

BeitragSo, Jul 17, 2005 22:16
Antworten mit Zitat
Benutzer-Profile anzeigen
?
also wenn ich den dateinamen von hand eintrage, meldet er das nicht. das bedeutet nach meiner logik, daß er irgendwie mit dem übergebenen string nicht klarkommt, weil dann der fehler kommt..
 

Dreamora

BeitragMo, Jul 18, 2005 0:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Bist du sicher, dass du in deinem Programm exakt obige Zuweisung machst?
Vielleicht ist dein String an dem Ort wo du ihn verwendest nämlich effektiv "" womit das Mesh nicht existiert. (passiert zb wenn man in einer Funktion einen String erzeugt und draussen auf eine gleichnamige Variable zugreift und dann davon ausgeht, dass diese automatisch auch gesetzt sei)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

occide

BeitragMo, Jul 18, 2005 0:12
Antworten mit Zitat
Benutzer-Profile anzeigen
also der string der den dateinamen enthält, wird im hauptprogramm als array, also global definiert. das loadmesh wird später in einer funktion aufgerufen.... hab ich da irgendwas übersehn?
 

Dreamora

BeitragMo, Jul 18, 2005 1:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Wird die Funktion erst aufgerufen, wenn der Dateiname im String Array drin steht? (also dim dateinamen$(xxx) vor dem funktionsaufruf)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

occide

BeitragMo, Jul 18, 2005 1:44
Antworten mit Zitat
Benutzer-Profile anzeigen
eindeutiges ja.
hab auch mal versuchsweise in der funktion direkt vor loadmesh() einen lokalen string definiert und loadmesh damit aufgerufen, was problemlos funktioniert hat. was hat denn die funktion fürn problem mit diesem angeblich globalen array???
 

Dreamora

BeitragMo, Jul 18, 2005 1:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Zeig mal den entsprechenden Sourcecode, also wo der Array deklariert wird, wo er mit Werten gefüllt wird und wo daraus ersichtlich ist, wie der Array benutzt wird.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

occide

BeitragMo, Jul 18, 2005 2:19
Antworten mit Zitat
Benutzer-Profile anzeigen
>hauptprogramm<
Global Dim obj_name$(5)
.
.
.
obj_name$(1)="1\fw45"
obj_name$(2)="2\fw42"
.
.
.
Function xy()
ob.objekt = New objekt
ob\entity=LoadMesh(""obj_name$(1)".x")

(bei bedarf poste ich gerne den kompletten quelltext, ist aber etwas länger. problem hängt auch nur da, weil wiegesagt alles läuft, wenn ich dateinamen direkt angebe statt dem array..)

simi

BeitragMo, Jul 18, 2005 9:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denke bei LoadMesh brauchts noch 2 "+"s ....
Arrow ob\entity=LoadMesh(""+obj_name$(1)+".x")
 

occide

BeitragMo, Jul 18, 2005 11:24
Antworten mit Zitat
Benutzer-Profile anzeigen
jo, hab ich aufgrund der späten stunde vergessen, aber
ob\entity=LoadMesh(""+obj_name(1)+".x")
funktioniert leider immernoch nich

im gegensatz hierzu
xy$="1\objekt" (direkt in der function vor loadmesh)
ob\entity=LoadMesh(""+xy+".x")
funktioniert reibungslos
 

Dreamora

BeitragMo, Jul 18, 2005 11:33
Antworten mit Zitat
Benutzer-Profile anzeigen
1. Was aus dem Source nicht ersichtlich ist: Wo wird die Funktion aufgerufen? Da steht wo sie deklariert ist, jedoch ist das nicht von Bedeutung für die Auswertung des Array Inhaltes. Ich vermute genau dieser Part stimmt nicht.

Sprich du hast zwar

dim obj_name$(5)

in folgender Reihenfolge
Code: [AUSKLAPPEN]

;das is nur pseudo code
dim obj_name$(5)

; ...

xy ()

;...

obj_name$(1)="1\fw45"
obj_name$(2)="2\fw42"

Andernfalls müsste es nämlich funktionieren, vorausgesetzt Punkt 3 ist erfüllt Wink

2. Ach ja das "" + kannst du vorne wegnehmen, dass braucht es nicht.

3. Der Pfad stimmt ma nehm ich an? (also im Verzeichnis wo die Haupt bb Datei ist hats einen Ordner 1 mit einer Datei fw45.x und einen Ordner 2 mit einer Datei fw42.x)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

occide

BeitragMo, Jul 18, 2005 11:53
Antworten mit Zitat
Benutzer-Profile anzeigen
vielen dank. ich hätte zwar nicht gedacht, daß mir nach 12 jahren programmieren so n extrem d... fehler passieren kann, aber das wars jetzt tatsächlich, so wies aussieht. hab das array zwar vor dem funktionsaufruf definiert, alllerdings mit daten gefüllt erst hinterher. *handmehrmalsgegenkopfschlag*
Very Happy
danke dir nochmal

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group