Typenamen per Input
Übersicht

![]() |
SeomanBetreff: Typenamen per Input |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
leider konnte ich keinen besseren Titel finden. Ich meine folgendes: Mit Input lässt man einen Spieler einen (z. B.) Namen wählen. Dann möchte ich etwas machen wie "Spielereingabe" = New.Player Ich hoffe ihr versteht mich und ich stelle keine Frage mit einer allzu plausiblen Antwort... Danke im Voraus Seoman |
||
![]() |
maximilian |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo Johannes (![]() wie wärs damit: Code: [AUSKLAPPEN] Type player Field name$ End Type player1.player = New player Input player1\name$ Grüße, LordChaos |
||
BIG BUG |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn du dynamisch Variabelnamen vergeben willst, vergiss es. Das geht mit BB nicht.
Vielleicht meinst du auch folgendes? Code: [AUSKLAPPEN] spieler.player = new.player spieler\name$ = Input ("Spielername") |
||
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final) |
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Edit: Zu spät ![]() Bei einigen Sprachen geht das, wahrscheinlich sogar in PHP. Bei BlitzBasic ist es aber nicht möglich soviel ich weiss. Wenn ich dich richtig verstehe meinst du sowas ähnliches wie das hier: Code: [AUSKLAPPEN] var_name = 1 var_datum = 10393 ;und bei einigen Sprachen kann man dann die Variablennamen zusammensetzen var_ + "name" = 2 var_ + "datum" = 3 usw.. Nur willst du nicht zusammenbauen sondern komplett was eigenes? Ich würd das eher so machen: Code: [AUSKLAPPEN] name$ = Input("Spieler Name: ") p.player = new player p\name$ = name$ p\health = 100 ;usw.. |
||
![]() |
Seoman |
![]() Antworten mit Zitat ![]() |
---|---|---|
@LordChaos
Hi Max! Schon zurück? Eigentlich meinte ich eher, dass der Typename "Billi" ist, also billi\geld = 2000 Danke trotzdem. Seoman PS: @LordChaos: DU SOLLTEST DOCH ZURÜCKSCHREIBEN ![]() |
||
![]() |
maximilian |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wieso denn billi? ![]() Eh, ich bin unschuldig, bin erst seit kurzdem zu Hause. Grüße, LordChaos |
||
![]() |
Seoman |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich brauchte schnell irgendeinen Namen... | ||
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Genau das sind aber dynamische Variablennamen.
Kann man in Blitz nicht so machen. Code: [AUSKLAPPEN] Type player Field name$ End Type Function GetPlayerByName.player(name$) For p.player = each player if p\name$ = name$ then return p Next Return Null End Function For i = 1 to 10 p.player = new player p\name$ = Input("Name: ") Next selected.player = GetPlayerByName("billi") If selected = null then print "Player billi nicht vorhanden" Else print "Player billi wurde ausgewählt" Endif |
||
![]() |
maximilian |
![]() Antworten mit Zitat ![]() |
---|---|---|
Achso,
Code: [AUSKLAPPEN] Type player Field name$ End Type p1.player p1 = New Player ;---so oft du willst p1\name$ = "Hugo" p1 = New Player p1\name$ = "Super Ingo" For p1 = Each player Print p1\name$ Next Anders ist es leider niocht möglich (braucht man ja auch nicht anders) Grüße, LordChaos |
||
![]() |
maximilian |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok, Posts haben sich überschnitten, Jolinah hats schöner demonstiert. ![]() Grüße, LordChaos |
||
![]() |
Seoman |
![]() Antworten mit Zitat ![]() |
---|---|---|
Man braucht's nicht, aber es wäre nicht schlecht gewesen. Naja, mach ichs anders.
Danke trotzdem Seoman |
||
- Zuletzt bearbeitet von Seoman am Di, Aug 03, 2004 12:59, insgesamt einmal bearbeitet
![]() |
sbrog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab mal ne Frage :
Wäre das in C++ mittels Präprozessor möglich ? |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nein, da in C++ und anderen Sprachen Variablen sogar zwingen initialisiert sein müssen um überhaupt genutzt werden zu dürfen.
Ich kenne nur Scriptsprachen die das können, da die gerparst werden ( C Script zb wo man den ausdruck auflösen kann ) |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
denial |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nope,
in C++ ist das nicht möglich, und der Präprozessor hätte an dieser Stelle wohl keinen Sinn, da man, um dynamische Variablen zu nutzen, den Code noch NACH dem Compilieren verändern müsste, und das ist natürlich nicht möglich... Folglich sind dynamische Variablen / Funktionen etc. nur in rein-interpretierten Sprachen möglich. Ich frage mich zwar schon lange ob Blitz Basic wirklich kompiliert, oder ob der Code bloß irgendwie per Laufzeit durch eine Virtual Machine läuft, aber ich hoffe mal, dass es "echter", kompilierter Maschinencode ist. ![]() Interessant ist zum Beispiel, dass Visual Basic, zumindest in der Version 6 und darunter, auch mit einer Virtual Machine läuft. Das heißt der Code wird vor Ausführung optimiert, jedoch dann interpretiert. Genauso läuft es bei Java. ![]() |
||
![]() |
sbrog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: da man, um dynamische Variablen zu nutzen, den Code noch NACH dem Compilieren verändern müsste sorry, da habe ich gar nicht daran gedacht Aber wäre es möglich, Variablen mittels Präprozessor zu erstellen, sodass man z.B Variablen namens var01,var02 usw. in einer Schleife initialisieren kann ?[/quote] |
||
denial |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich versteh nicht so genau was du meinst...
Ein Präprozessor ist nichts anderes als ein Programm, welches den Code für den Compiler vorbereitet... Beispielsweise agiert der Präprozessor bei dem Befehl Include.. Er verschmilzt vor der Kompilierung die Hauptcodedatei mit der Includedatei, sodass der Compiler das Ganze als eine Datei gibt und sich, zusätzlich zu seiner harten Arbeit nicht auch noch die Mühe machen muss, Codeschnippsel zusammen zu kleben ![]() Jetzt könnte man dem Präprozessor natürlich sagen, dass Code: [AUSKLAPPEN] var + 1 = 5 gleich Code: [AUSKLAPPEN] var1 = 5 sein soll... Das würde dir jedoch auch keine Dynamik bringen - schließlich kann der Präprozessor keine dynamisch erzeugten Werte verarbeiten, sondern nur das, was aus dem reinen Codeaufbau zu Beginn eindeutig hervor geht... Beispiel: Konstanten oder initialisierte Variablen. Benutzereingaben etc. sind jedoch zu Beginn nicht vorhanden. Folglich kann der Präprozessor damit rein garnichts anfangen. [/code] |
||
![]() |
Mattis_the_brain |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist es nicht scheiß egal wie eine Variable heißt wenn ein Programm gerade läuft? Denkt mal drüber nach... 8) | ||
Edlothiol |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zitat: Ich frage mich zwar schon lange ob Blitz Basic wirklich kompiliert, oder ob der Code bloß irgendwie per Laufzeit durch eine Virtual Machine läuft, aber ich hoffe mal, dass es "echter", kompilierter Maschinencode ist.
BB wird in echten Maschinencode kompiliert.
Interessant ist zum Beispiel, dass Visual Basic, zumindest in der Version 6 und darunter, auch mit einer Virtual Machine läuft. Das heißt der Code wird vor Ausführung optimiert, jedoch dann interpretiert. Genauso läuft es bei Java. Übrigens ist Java im Optimalfall sogar ein bisschen schneller als C++ ![]() Und Visual Basic .NET läuft logischerweise auch auf einer VM, ist ja .NET... |
||
![]() |
Brotenkopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo hier wurde zwar lange nicht mehr über das thema gesprochen aber ich bin grade bei dem etwa dem selben problem
Also ich möchte eine Funktion erstellen in welcher ich einen string angeben muss etwa Function bla(name$) so mit diesem namen möchte ich einen type erstellen name$.bla=new bla dynamisch wäre es doch nur wenn ich genau diese type name wieder ändern würde.ich möchte ihn aber doch nur einmal erstellen mit diesem bestimmen namen. |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich denke mal das geht nicht...es ist auch zu umständlich
Bitte stelle die Situation genauer dar, in der Du sowas benötigst! Ich bin mir ziemlich sicher, dass es einen viel einfacheren Weg gibt. Hintergrund: Typbezeichnungen sind nur was für den Editor. Im späteren Programm gibt es sie gar nicht. Hier besteht die Welt aus Zahlen und Speicherbereichen. Eine Instanz deines "Types" ist später nicht weiter als ein Stück Speicherbereich mit der für die "Fields" benötigten Anzahl an Bytes. Zur Laufzeit also einem Typ eine best. Bezeichnung geben zu wollen ist in 99% der Fälle Nonsens |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group