| |
|
|
Dieter Zornow | Hi IF,
XPSE erkennt nicht wenn eine Variable definiert ist mit DEF. Beispiel: DEF Name$(0) String$(mem#,0), XPSE gibt eine Warnung, dass Name$ nicht declariert ist.
Viel Grüße aus Bangkok
Dieter |
|
|
| Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 01.07.2007 ▲ |
|
|
|
|
Jac de Lad | Mit Def Name$(0) String$(mem#,0) declarierst du aber eine Funktion. Ich weiß nicht ob das ein Denkhänger von dir ist... |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 01.07.2007 ▲ |
|
|
|
|
Dieter Zornow | Richtig, ist eine Funktion, da habe ich mich wohl falsch ausgedrückt, kann passieren. Was ist ein Denkanhänger, noch nie gehört, vielleicht ein Kandidat für das Wort des Tages oder der Woche
Viele Grüße aus Bangkok
Dieter |
|
|
| Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 01.07.2007 ▲ |
|
|
|
|
| XPSE kommt mit DEF bestens klar - hast Du mal ein Beispielcode? |
|
|
| |
|
|
|
Rolf Koch | Eine Frage: Seit wann eine Variable in Def? Name$ oder Name&
Eigentlich doch dann so: Def Name(0) String$(mem#,0) oder?
Denn es ist eine Funktion. Und Name ist hier der Funktionsname. Wäre ja genauso wie eine Proc: Proc blabla$ ... Endproc Würde auch nicht funktionieren |
|
|
| |
|
|
|
| Hrm - Roland erlaubt IMHO Procnamen wie Name$.
XPSE ist da weniger gnädig - lässt es aber unter Umständen dennoch manchmal durchgehen. |
|
|
| |
|
|
|
Rolf Koch | Jo, da hat XPSE auch Recht , dass es weniger gnädig ist. |
|
|
| |
|
|
|
| Neulich erreichte mich die Frage ob XPSE Freizeichen in Variablennamen oder Funktionsnamen erlauben würde - und ob XProfan dies tun würde. Das ist kein Scherz! |
|
|
| |
|
|
|
Rolf Koch | - Coooool |
|
|
| |
|
|
|
Dieter Zornow | Hier ein minimal Code, bringt die Warnung undefinierte Funkion, was auch immer dies bedeuten soll. Der Knackpunkt ist das $ im Namen, ohne das wirds akzeptiert. Sollte aber meiner Meinung nach gehen, da es der Übersicht dient, mit diesem Zeichen ist sofort klar, dass hier ein String das Ergebnis ist. Ich benenne alle Defs in der Form nach der Rückegabe z.B auch name&
Viele Grüße aus Bangkok
Dieter |
|
|
| Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 02.07.2007 ▲ |
|
|
|
|
RGH | Also: Dein Code läuft bei mir einwandfrei und mach genau das, was man erwartet! (Getestet mit XProfan 10.0a im Interpreter und kompiliert.)
Gruß Roland
Nachtrag: Sorry, ich hatte überlesen, daß es hier um den XPSE geht. Aber Deine Syntax ist auf alle Fälle korrekt! Das $ im Funktionsnamen ist kein Problem, schließlich sind schon seit frühesten BASIC-Zeiten String-Funktionen durch dieses abschließende $ gekennzeichnet. Das ist natürlich auch für mit DEF definierte Funktionen möglich. Unabhängig davon empfehle ich jedoch, Funktionen statt mit DEF zu definieren durch eine Prozedur mir Rückgabewert zu definieren. Auch dann ist das $-Zeichen erlaubt:
|
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 02.07.2007 ▲ |
|
|
|
|
| xpse meint
Warnung: (NAME$) undeklarierte Funktion. (~1)
weil im Source
print name$()
steht - und Name$ nicht als Funktion* deklariert wurde.
Ich zitiere Dich mal:
Hi IF,
XPSE erkennt nicht wenn eine Variable definiert ist mit DEF.
Und genau hier ist das Problem. Du meintest eine Funktion statt einer Variablen - und da XPSE immer um Klarheit bemüht ist und um eine saubere Syntax - und da hierbei eindeutig eine Verwechslungsgefahr besteht - meckert er. Ein Stückchen weniger Verwechslungsgefahr bestünde dann - wenn name$ eindeutig als Funktion mit Proc deklariert würde.
Aber auch hierbei kann ich verraten das es sich eigendlich eben nicht gehört einer selbstdefinierten Funktion ein Variablen/TypSuffix zu verpassen. So viel ich bemerken konnte interessiert es nämlich dem XProfan absolut überhaupt garnicht welches Suffix der Funktionname trägt - entscheidend ist der Return-Typ.
Dieter Du bist ein alter Profan²-XProfan-Schlumpf - ich will Dich keinesfalls belehren - es geht halt darum auch ein bisl frischen und eindeutigeren Wind in die erlaubte Syntax zu bringen weil sich für mich persönlich (und für mich ist xpse entstanden) viele Fehlerquellen/Fallen aus einer Syntax ergeben welche zwar erlaubt ist - aber verboten gehört.
Du kannst alle Warnungen mit {$noerr} abschalten. |
|
|
| |
|
|