BUG??? Funktion = DIM

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

EPS

Betreff: BUG??? Funktion = DIM

BeitragFr, Nov 19, 2004 14:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi zusammen...gab's hier nicht mal ne BUG Sektion? Na egal...

Nach 3 Tagen Fehlersuche hab ich jetzt einen Programm Fehler gefunden und mich tierisch aufgeregt, weil ich nämlich der Meinung bin das der Compiler den hätte erkennen müssen.

Vorab...mein Programm ist recht umfangreich und von daher hab ich es einfach übersehen.

Ich hatte eine Dimension angelegt z.B.: DIM WordWidth(200) und im Verlauf des Programms auch zufällig eine Funktion erstellt die den selben Namen bekam: Function WordWidth(txt$).

Beim Versuch mit Hilfe der Funktion einen Wert zu ermitteln bekam ich nur Unsinn heraus und ich hab's einfach nicht verstanden. Wie auch immer...die Lösung des Problems: Die Funktion gab mir nicht den errechneten Wert zurück, sondern ich bekam den Wert der in der Dimension steht.

Nun ist mir ja bekannt das man Funktionen und Variablen gleich benennen kann, aber das hier finde ich wirklich schwerwiegend, weil ja nicht einmal der Indextyp und die Funktionsvariable übereinstimmen.

Ich denke das dies der Compiler erkennen müsste und melden sollte das hier ein Funktionsname und eine Dimension den gleichen Variablen/Funktionsnamen tragen.

soviel von einem stinksauren EPS Evil or Very Mad
 

.:_]TRaSh

BeitragFr, Nov 19, 2004 16:11
Antworten mit Zitat
Benutzer-Profile anzeigen
schlimm schlimm Wink
[20:17] IMurDOOM: hm irgendwie is die mitte des viehs kaputt
[20:17] TRaSh: ein bisschen
[20:18] DarkAngel: es tut mir irgend wie leid

Hubsi

BeitragFr, Nov 19, 2004 16:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Habs gerade probiert, ein lecker Bug. Jemand mit vernünftigen Englischkenntnissen (EPS vielleicht?) sollte Mark kontaktieren.
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

David

BeitragFr, Nov 19, 2004 16:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Code: [AUSKLAPPEN]

Graphics 800, 600, 32

Global test[ 10 ]

For i = 0 To 10
   test[ i ] = i
Next

For i = 0 To 10
   Print test[ i ]
Next

WaitKey

Function test( val )
   Return 10
End Function


So geschrieben gibts auch keine Fehler...
Und der Bug ist nun wirklich nicht übelst! Rolling Eyes

grüße
http://bl4ckd0g.funpic.de

EPS

BeitragFr, Nov 19, 2004 19:27
Antworten mit Zitat
Benutzer-Profile anzeigen
@David...so geschrieben ist es auch ein BlitzArray und der BUG ist schon übel...selbst QuickBasic macht nicht solche Fehler.

Ich wünsche dir mal ein großes Projekt mit ein paar 10.000 Zeilen und dann kommt dieser Fehler...
 

denial

BeitragFr, Nov 19, 2004 19:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich finde den Bug auch schwerwiegend - wenn das nicht erkannt wird, versagt der BlitzBasic Compiler schlicht und ergreifend auf semantischer Ebene.
Sollte den Entwicklern schon mitgeteilt werden.
 

Apocalyptic

BeitragFr, Nov 19, 2004 22:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Korrigiert mich, falls ich was falsch verstehe, aber wie soll der Compiler herausfinden, was hiermit gemeint ist:Code: [AUSKLAPPEN]
Dim Blubb%(10)
Wert=Blubb(10)
Function Blubb%(Wert%)
Return Wert
end function
?
Da müsste ja die Syntax anders aufgebaut sein, so dass Arrays z.B. mit anderen Klammern geschrieben werden.

EDIT: Ups, Problem falsch verstanden Embarassed
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]

EPS

BeitragFr, Nov 19, 2004 22:39
Antworten mit Zitat
Benutzer-Profile anzeigen
@Apocalyptic....naja bist ja drauf gekommen...

Also ich selbst kann leider kein so gutes englisch...hatte nicht jemand einen guten Draht zu Mark?
 

Dreamora

BeitragFr, Nov 19, 2004 23:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie er das erkennen soll: Normalerweise müsste er wegen namenskollosion schon im precompiler ausstaugen ...
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Apocalyptic

Betreff: Re: BUG??? Funktion = DIM

BeitragFr, Nov 19, 2004 23:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Jaja, schon gut, hab das ganze nur überflogen und das hier überlesen:

EPS hat Folgendes geschrieben:
Ich denke das dies der Compiler erkennen müsste und melden sollte das hier ein Funktionsname und eine Dimension den gleichen Variablen/Funktionsnamen tragen.
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]
 

BlitzBirne

BeitragSa, Nov 20, 2004 23:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm...

Ich halte das nicht für einen Bug.
Ich denke mal, der Compiler wandelt txt$ in ne Zahl um - automatische Typumwandlung.

Ich werde mich jedenfalls hüten, für 2 Sachen exakt den selben Namen zu verwenden - sonst kommt nämlich genau sowas bei raus, und man sucht sich den A**** blutig. Laughing

Naja, und das nachträgliche Umändern des Namens mit der replace-Funktion dürfte auch umständlicher werden, da für 2 Verschiedene Sachen der Selbe name verwendet wurde - Also noch ein Grund, nicht so zu programmieren.

Fazit: Das als Bug zu bemängeln halte ich für unangemessen.

Soll keine Kritik sein, nur nen kleiner "Hinweis" meinerseits Wink


MfG

eXceptION

BeitragSo, Nov 21, 2004 11:10
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBirne hat Folgendes geschrieben:
der Compiler wandelt txt$ in ne Zahl um - automatische Typumwandlung.

ich glaub eher die addresse von txt$ benutzt wird...
Norweger...

Spreche aber verdammt gut 8086

Hubsi

BeitragSo, Nov 21, 2004 11:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Das war ja auch nicht absichtlich so geschrieben und für den Compiller sollte es ja kein Problem sein sowas zu erkennen Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

TheShadow

Moderator

BeitragSo, Nov 21, 2004 11:56
Antworten mit Zitat
Benutzer-Profile anzeigen
hm arrays haben wohl priorität vor funktionen - und diese werden zuerst genommen...

man kann ja vor arrays immer ein a davor schreiben:

DIM a_stars(100)
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2
 

D²O

BeitragSo, Nov 21, 2004 12:30
Antworten mit Zitat
Benutzer-Profile anzeigen
TheShadow hat Folgendes geschrieben:
hm arrays haben wohl priorität vor funktionen - und diese werden zuerst genommen...

man kann ja vor arrays immer ein a davor schreiben:

DIM a_stars(100)


Jo, sowas in der Art wie die "Ungarische Notation".

Ich nehm Dim immer das hier "d_", functionen das "f_" und bei Localen Variablen, "l_", als anfang.

So kann man manch fehler umgehen und kann denn eigendlichen Variablen Namen mehrfach benutzen wenn es zu einer bestimmten Gruppe dazu gehöhren soll.

Z.B. Timer
Code: [AUSKLAPPEN]
global Timer
Dim d_Timer(1)
function f_timer(l_timer = 1)
    l_timer..........
return l_timer
end function
Blitz+; Blitz3d; BlitzMax; GLBasic; Purebasic;
GameMaker Studio 1.4xx; AGK;

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group