Seltsame Fehlermeldung, bitte helft mir!

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

GermannX

Betreff: Seltsame Fehlermeldung, bitte helft mir!

BeitragMo, Apr 14, 2008 21:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo alle zusammen.
Da programmiere ich gemütlich vor mich hin (brauche das für die Schule) und dann passiert was sehr seltsames: Es funktionierte bisher alles, aber nachdem ich weiter am Code gearbeitet hatte kommt jetzt ein völlig unlogischer Fehler und ich weiss wirklich nicht was das soll. Der Editor (ich benutze den Ideal-Editor mit standard B3D-Compiler Version 1.98) springt in eine Zeite, die 100%ig fehlerfrei ist (eine ganz simple If-abfrage, wenn, müsste es da doch zur Laufzeit abstürtzen und ja, die Variable ist deklariert und definiert). Dann kommt als Fehlermeldung:

Blitz 3D Compiling Error
Expecting expression
File:(hier steht der korrekte Pfad)
Line: 18271, Column: 1118

Das Komische dabei: Die If-Abfrage ist selbstverständlich keine 1118 Zeichen vom Rand entfernt! Die Zeile ist lediglich 25 Zeichen lang. Wie kann das sein und was kann ich tun? Ich kenne mich mit B3D nicht großartig aus, aber es wäre mir wirklich wichtig und es wäre sehr nett wenn mir jemand helfen könnte.

Danke im Voraus
GermannX
...und der Tod warf seine Sense weg und stieg auf den Mähdrescher, denn es war Krieg!

Der Eisvogel

BeitragMo, Apr 14, 2008 22:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Schreib mal bitte die ganze Zeile und die darüber und darunter.
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.
 

GermannX

BeitragMo, Apr 14, 2008 22:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Aus dem Code:

Color 127,0,0
Rect (BauerX(I)+X_M),((BauerY(I)+Y_M)-32),15,3
Color 0,255,0
Rect (BauerX(I)+X_M),((BauerY(I)+Y_M)-32),(Bauer(I)/(BauerMax/15)),3
Color 255,255,255
If Bauer(I)>0 Then
If BauerBefehl(I)=2 Or (BauerBefehl(I)=3 And BauerErreicht(I)=0) Then
If BauerRichtung(I)=Unten Then
If Animationsstufe=0 Then
DrawImageBauer1_Ukron_UntenSelect,(X_M+BauerX(I)),(Y_M+BauerY(I)-25)
ElseIf Animationsstufe=1 Then
DrawImage Bauer1_Ukron_UntenSelect_a ,(X_M+BauerX(I)),(Y_M+BauerY(I)-25)
ElseIf Animationsstufe=2 Then
DrawImage Bauer1_Ukron_UntenSelect_b ,(X_M+BauerX(I)),(Y_M+BauerY(I)-25)
ElseIf Animationsstufe=3 Then
DrawImage Bauer1_Ukron_UntenSelect_b ,(X_M+BauerX(I)),(Y_M+BauerY(I)-25)
EndIf
ElseIf BauerRichtung(I)=Untenlinks Then
-------------


usw. usf.
Dabei geht es darum, Einheiten (in dem Fall Bauern) zu zeichnen, da ich an einem Echtzeitstrategiespiel als Schulprojekt arbeite. Am anfang wird mit den Rects die Lebensenergie gezeichnet, dann wird der Befehl des Bauern überprüft (soll er laufen oder steht er still?) und dann wird die Richtung abgefragt, in die er schaut. Daraufhin wird das entsprechende Bild der entsprechenden Animationsstufe gezeichnet.
Die fett geschriebene Zeile ist die, die in der Fehlermeldung angegeben wird. Ich hoffe das war soweit hilfreich.

MfG
GermannX
...und der Tod warf seine Sense weg und stieg auf den Mähdrescher, denn es war Krieg!

Der Eisvogel

BeitragMo, Apr 14, 2008 22:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Schreib die Zeile mal ganz neu. Also löschen und neu schreiben. Das Problem hatte ich auch schon mal. Bei mir sind da irgendwie unsichtbare Zeichen hingekommen.
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

Tankbuster

BeitragMo, Apr 14, 2008 22:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Nur mal so:
Ich würde dir Types empfehlen. Damit kannst du ohne Pobleme 100 Bauern "Leben" lassen, und verbrauchst erstens viel weniger Code und zweitens ist es viel übersichtlicher. Wenn ich sowas sehe ("BauerX(I)", "BauerBefehl(I)") wird mir schwindelig ^^ Mir wird natürlich nicht schwindelig, aber das hört sich so krass an Wink

Wenn du Types aber nicht beherrschst (und dir auch keine Arbeit machen willst sie zu erlernen), könntest du mit einem 2Dimensionalen Array arbeiten. Dann wäre die erste "Dimension" die Nummer des Bauern und in der zweiten "Dimension" könntest du alle Sachen speichern.

z.B.


Bauer(i,1) könnte die X Position von Bauer i sein
Bauer(i,2) könnte die Y Position von Bauer i sein
Bauer(i,3) könnte der Befehl von Bauer i sein

Bauer(8,1) könnte die X Position von Bauer 8 sein
Bauer(8,2) könnte die Y Position von Bauer 8 sein
Bauer(8,3) könnte der Befehl von Bauer 8 sein
usw usw....
usw usw....
Ich hoffe du hast mich verstanden Wink Smile
Twitter
Download Jewel Snake!
Windows|Android
 

GermannX

BeitragMo, Apr 14, 2008 22:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke, aber das hilft leider nicht (ich habe sogar schon ca. 40 Zeilen rund rum neu geschrieben bzw. von einer anderen Stelle im Code kopiert, die vorher kommt und bei der es auch problemlos geht). Jetzt auch extra nochmal manuell geschrieben, aber das bringt leider nichts. Wenn ich die entsprechende Stelle herausnehme, will er den Fehler an anderer Stelle finden. Ich bin wirklich ratlos Rolling Eyes

Trotzdem danke für deine Hilfe.

MfG
GermannX
...und der Tod warf seine Sense weg und stieg auf den Mähdrescher, denn es war Krieg!

Tankbuster

BeitragMo, Apr 14, 2008 22:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Moment. Wie groß ist deine Datei?
Der Compiler schafft doch nur bis zu einer Dateigröße von 1MB, oder Irre ich mich da?
und wenn du über 10000 Zeilen hast wäre das theoretisch möglich, dass du diese Granze überschritten hast Wink

Eine Lösung wäre INCLUDE zu benutzen Wink
Twitter
Download Jewel Snake!
Windows|Android
 

GermannX

BeitragMo, Apr 14, 2008 22:39
Antworten mit Zitat
Benutzer-Profile anzeigen
@Tankbuster:

Danke, da hast du natürlich grundsätzlich Recht (wärend dem Schreiben habe ich auch einiges neues erfahren, dass ich, so wie deinen Hinweis, lieber schon früher hätte wissen sollen). Allerdings wirst du verstehen, dass ich jetzt nach insgesammt über 80k Zeilen Code in die ich viel zeit investiert habe meine Bereitschaft, alles nochmal neu zu schreiben sehr gering ist. Es ist ja auch nicht so, dass es nur Bauern gäbe, sondern da sind noch über 40 andere Einheiten (soll recht umfangreich werden). Auch würde die Zeit nichtmehr ausreichen, um alles neu zu machen.
Trotzdem danke für den guten Tip Smile

MfG
GermannX
...und der Tod warf seine Sense weg und stieg auf den Mähdrescher, denn es war Krieg!
 

GermannX

BeitragMo, Apr 14, 2008 22:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Ach nd Tankbuster, diese Grenze gilt soweit ich weiss nur, wenn man den Standard-Editor benutzt, weshalb ich auch den Idealeditor nutze (wurde mir genau aus diesem Grund hier im Forum empfohlen). Der Code ist schon lange größer als ein MB (mittlerweile sogar größer als 4 MB) Smile
Wie gesagt steckt da viel Arbeit drin (wäre sicher nur die Hälfte, wenn ich mich besser auskennen würde, aber ich bin nunmal nicht so fit mit B3D).
...und der Tod warf seine Sense weg und stieg auf den Mähdrescher, denn es war Krieg!

Tankbuster

BeitragMo, Apr 14, 2008 22:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Allerdings wirst du verstehen, dass ich jetzt nach insgesammt über 80k Zeilen Code in die ich viel zeit investiert habe meine Bereitschaft, alles nochmal neu zu schreiben sehr gering ist


Shocked 80k=80000?

Ok das kann ich natürlich verstehen, aber ehm hast du meinen neuen Post durchgelesen? Wiegroß ist die Datei? Wie gesagt: Blitz schafft nicht mehr als 1MB Wink
Twitter
Download Jewel Snake!
Windows|Android
 

GermannX

BeitragMo, Apr 14, 2008 22:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, habe ich gelesen und wie ich bereits schrieb, ist das nur so, wenn man den standard Editor verwendet. Da ich aber Ideal nutze, hatte ich mit sowas nie Probleme (wie gesagt bin ich bei mittlerweile über 4 MB und das war nie ein Problem, auch nicht als der Code 2 und 3 MB groß war). Ansonsten werde ich aber mal schaun, dass ich trotzdem Include verwenden werde (mal nachschauen wie das geht^^).

Danke für die Hilfe, wirklich klasse hier im Forum Smile

MfG
GermannX
...und der Tod warf seine Sense weg und stieg auf den Mähdrescher, denn es war Krieg!
 

GermannX

BeitragMo, Apr 14, 2008 23:19
Antworten mit Zitat
Benutzer-Profile anzeigen
So, dank deinem Tip mit der Aufteilung habe ich den Fehler gefunden!
Ich hatte (an einer einige Tausend Zeilen entfernten Stelle) nach einem "And" in einer If-Abfrage die Bedingung vergessen. Jetzt wundert es mich nur, warum er mir dann nicht den entsprechenden Fehler meldete, sondern so einen Käse Rolling Eyes
Danke für eure Unterstützung!

MfG
GermannX
...und der Tod warf seine Sense weg und stieg auf den Mähdrescher, denn es war Krieg!

Eingeproggt

BeitragDi, Apr 15, 2008 0:03
Antworten mit Zitat
Benutzer-Profile anzeigen
omg... Dürfte ich im nachhinein noch fragen: Willst du nicht ein bisschen schauen, dass du den code stauchst? Und wie lange dauert das jedesmal zu kompilieren?

mfG, Christoph.
 

GermannX

BeitragDi, Apr 15, 2008 13:34
Antworten mit Zitat
Benutzer-Profile anzeigen
@Eingebroggt:
Mit meinen Kenntnissen (die nunmal nicht gerade umfangreich sind) lässt sich der Code nicht großartig stauchen (auch wenn ich mir sicher bin, dass es da Wege gäbe). Zum Kompilieren braucht´s bei meinem Laptop (1 GB RAM, Turion TL50 Prozessor mit 1,61 Ghz) ca. 25 Sekunden, geht also (manchmal auch 30 Sek. ,je nach dem wie ausgelastet der Laptop ist).

MfG
GermannX
...und der Tod warf seine Sense weg und stieg auf den Mähdrescher, denn es war Krieg!

D2006

Administrator

BeitragDi, Apr 15, 2008 15:26
Antworten mit Zitat
Benutzer-Profile anzeigen
GermannX:
Bitte demnächst keine Doppelposts mache (also zwei Beiträge hintereinander in einen Thread schreiben), sondern den Edit-Button benutzen, danke!
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

peacemaker

BeitragDi, Apr 15, 2008 15:56
Antworten mit Zitat
Benutzer-Profile anzeigen
IDEal macht manchmal solche komische Sachen, z.B. sagt er Expecting end of File und markiert eine Zeile, die nur aus einem Kommentar oder aus gar nix besteht.
Das ist teilweise sehr ärgerlich, hat man nicht mehrere Dateien kann mans sonst im normalen BB-Editor probieren.
Dort gibts dann ne korrekte Ausgabe.

mfG
~Tehadon~
www.tehadon.de
http://www.blitzforum.de/worklogs/14/
 

GermannX

BeitragDi, Apr 15, 2008 18:51
Antworten mit Zitat
Benutzer-Profile anzeigen
@D2006:

Jawoll, werde ich machen (tut mir leid dass ich das übersehen habe, wird nicht wieder vorkommen).

@Peacemaker1:

Ok, danke, das wusste ich nicht. Jetzt erklärt sich so einiges^^.

MfG
GermannX
...und der Tod warf seine Sense weg und stieg auf den Mähdrescher, denn es war Krieg!

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group