CodeCruncher - Kleine Frage

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

hazumu-kun

Betreff: CodeCruncher - Kleine Frage

BeitragSa, Nov 28, 2009 16:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay, folgendes:

Ich arbeite derzeit an einem CodeCruncher um zukünftige BCC's mit CodeLimit etwas angenehmer für alle zu gestalten.

Problem ist:
"Local" ist an sich überflüssig, aber,
"Local var=1" darf zu "var=1" werden,
"Local var" darf nicht zu "var" werden sondern muss komplett verschwinden.

Desweiteren muss:
BlitzBasic: [AUSKLAPPEN]

Print "rhabarber"
Local var=1

zu
BlitzBasic: [AUSKLAPPEN]

Print "rhabarber"
var=1

werden, wie auch
BlitzBasic: [AUSKLAPPEN]

Print "rhabarber":Local var=1

zu
BlitzBasic: [AUSKLAPPEN]

Print "rhabarber":var=1

.

Ideen?
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent
  • Zuletzt bearbeitet von hazumu-kun am Sa, Nov 28, 2009 16:20, insgesamt einmal bearbeitet

TimBo

BeitragSa, Nov 28, 2009 16:16
Antworten mit Zitat
Benutzer-Profile anzeigen
wieso ist global überflüssig ?
wie willst du sonst auf Variablen in Funktionen zugreifen ?

Local ist überflüssig.

Grüße
TimBo

Edit:
ich würde am Anfang den ganzen Text auf Local durchsuchen und diese komplett löschen.
Dann noch ein durchgang mit dem Doppelpunkt.

BlitzBasic: [AUSKLAPPEN]

;Ausgang
Print "hallo"
Local test=5

;Nachdem locals gelöscht wurden (incl das nachfolgende Leerzeichen)
Print "hallo"
test=5

;Nachdem die : eingefügt wurden
Print "hall":test=5

hazumu-kun

BeitragSa, Nov 28, 2009 16:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Ahh, sry, okay, beziehen wir alles vorige mal auf Local
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent

Tennisball

BeitragSa, Nov 28, 2009 16:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Local ist afaik nicht überflüssig.

Code: [AUSKLAPPEN]
Local var$

var = "Local ist nicht überflüssig, ihr Banausen! :)"
Print var

WaitKey()


Kommentiert man Local var$ aus, ist das Ergebnis: 0

mfg,
Tennisball

TimBo

BeitragSa, Nov 28, 2009 16:35
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]

Local bla$
bla="hallo"
Print bla


; ist gleich (ohne Local)
bla$="hallo"
Print bla


omg ich banause XD

Greez
TimBo
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.
  • Zuletzt bearbeitet von TimBo am Sa, Nov 28, 2009 16:42, insgesamt 2-mal bearbeitet

Nicdel

BeitragSa, Nov 28, 2009 16:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Kein Wunder. Beim zweiten var ist ja auch kein $ mehr vorhanden. Also ist var ein Integer und der String ergibt 0.

Edit: Mist, nur Dritter Very Happy
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7
  • Zuletzt bearbeitet von Nicdel am Sa, Nov 28, 2009 16:37, insgesamt einmal bearbeitet
 

Lion

BeitragSa, Nov 28, 2009 16:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
var$ = "Local ist überflüssig, ihr Banausen! :)"
Print var

WaitKey()


ganz ohne local Wink

edit: da war wer schneller^^
Intel Core 2 Quad 4x2.66 ghz - 4gb ddr2 - nvidia GeForce GTX660 2gb
Intel Atom 1x1.83 ghz - 2gb ddr2 - intel GMA 3150 256mb
AMD A10-5750M 4x2.5 ghz - 8 gb ddr4 - AMD R9 M290x
  • Zuletzt bearbeitet von Lion am Sa, Nov 28, 2009 16:36, insgesamt einmal bearbeitet

Tennisball

BeitragSa, Nov 28, 2009 16:35
Antworten mit Zitat
Benutzer-Profile anzeigen
@TimBo
Und wenn man es nicht so programmiert hat? Rolling Eyes

BladeRunner

Moderator

BeitragSa, Nov 28, 2009 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist local dennoch überflüssig. Es gibt keinen Fall in dem man zwingend auf local angewisesn wäre.
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

TimBo

BeitragSa, Nov 28, 2009 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
du schaust bei dem Aufruf von Local um welchen Typ es sich handelt.
Gibt ja sage und schweige 3 Arten (2 ausnahmefälle # und $ ).

Und addet sie beim ersten Aufruf der Variable dran.

Ist nicht allzu schwer.

Grüße
TimBo

Code: [AUSKLAPPEN]
haus$="bla blubb"
haus=haus+"a"
Print haus


ist gleich

Code: [AUSKLAPPEN]
Local Haus$
haus="bla blubb"
haus=haus+"a"
Print haus


Zitat:
Und wenn man es nicht so programmiert hat?

Dafür muss der Cruncher Intelligent sein, was er hoffentlich wird Very Happy
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

hazumu-kun

BeitragSa, Nov 28, 2009 16:50
Antworten mit Zitat
Benutzer-Profile anzeigen
boah, jetzt wirds haarig,
Okay, die aktuelle Version wird erstmal mit Grundzügen eines Parsers ausgestattet.
Dann bau ich das mit den Locals ein, scheint ja komplizierter zu werden als ich dachte.
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSa, Nov 28, 2009 17:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Local ist für die funktionsweise des Codes bei BB und B3D absolut überflüssig. Jedoch erleichtert es die Fehlersuche wenn man eine anständige IDE benutzt (zum Beispiel IDEal). Erst dadurch kann der BadText farbig angezeigt werden, womit man sofort sieht, ob man sich vertippt hat, oder ob eine Variable bereits vergeben ist. Auch wird automatisch die Groß- und Kleinschreibung der Variablen dann automatisch auf das erstgesetzte korregiert, was auch wieder zur besseren Übersicht führt.

Man kann also auf Local komplett verzichten, und ein Code zum Beispiel mit Notepad über Replace alle ''local '' durch '''' ersetzen. Denoch rate ich ab davon sich so schmutzige Programmierstile erst überhaupt anzugewöhnen. Also ohne die Variablen zuvor zu deklarieren. Auch weil mir Fremdcode mit komplett rot markiertem BadText sofort jegliche Ambitionen zur Hilfe weg fallen. Und da bin ich sicherlich nicht der einzige.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

TimBo

BeitragSa, Nov 28, 2009 17:37
Antworten mit Zitat
Benutzer-Profile anzeigen
eben.

Ich machs immer vor der Main und in den Functions.
Das ist echt sau nützlich.

Aber das Rot-Einfärben bei nicht Deklarierten Variablen kann man ausschalten Wink

Grüße
TimBo
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

FireballFlame

BeitragSa, Nov 28, 2009 18:50
Antworten mit Zitat
Benutzer-Profile anzeigen
BladeRunner hat Folgendes geschrieben:
Ist local dennoch überflüssig. Es gibt keinen Fall in dem man zwingend auf local angewisesn wäre.
hectic hat Folgendes geschrieben:
Local ist für die funktionsweise des Codes bei BB und B3D absolut überflüssig.

Wie macht man denn Blitzarrays ohne Local?
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSa, Nov 28, 2009 19:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Nagut, Fireball hat ein Punkt gewonnen. Wink

Wobei ich es hier für eine spezielle Funktion betrachte, womit meine Aussage ja nicht richtiger wird.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

TimBo

BeitragSa, Nov 28, 2009 19:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Boah krass , das wusste ich noch gar nicht !!

Habe BlitzArrays nur in Kombination von Types benutzt.

Field bla[x]
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.
 

Kruemelator

BeitragSa, Nov 28, 2009 20:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Local ist nicht überflüssig!
Mit Local kann man in Funktionen Globale Variablen speeren!
Code: [AUSKLAPPEN]
Global bla$ = "hallo"

schreib()
Print bla$

Function schreib()
   Local bla$
   bla$ = "tschüss"
   Print bla$
End Function

ComNik

BeitragSa, Nov 28, 2009 20:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Und der Sinn?
Es wird doch wohl nicht zuviel verlangt sein sich einen zweiten Variablennamen auszudenken. Ist auf jedenfall besser, als da so ein Konstrukt zu bauen...

lg
ComNik
WIP: Vorx.Engine

Xeres

Moderator

BeitragSa, Nov 28, 2009 21:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Es geht doch gerade darum, den Code so zu verkleinern, dass er exakt gleich wie unkomprimiert funktioniert... Ansonsten kann man gleich unleserlichen Code fabrizieren - was den Mehrwert für andere beim BCC schmälert.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

Kruemelator

BeitragSa, Nov 28, 2009 21:20
Antworten mit Zitat
Benutzer-Profile anzeigen
@ComNik:
Ich wollte hazumu-kun nur mitteilen, das es einen Fall gibt, in dem man Local nicht entfernen darf und Local durch nix zu ersetzen ist(außer durch eine komplett neue Variablenbezeichnung).
Vielleicht hast du schonmal eine Funktion aus einem anderen Programm von dir benutzt welche eine Variable hat die genauso als Globale vorkommt. Anstatt dass man alle Variablen in der Funktion umbenennt, kann man einfach "Local bla" zu Beginn der Funktion setzen. Habe ich aber selbst noch nie benutzt Wink

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group