Typenamen per Input

Übersicht BlitzBasic Allgemein

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

Seoman

Betreff: Typenamen per Input

BeitragMo, Aug 02, 2004 21:13
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Aug 02, 2004 21:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Johannes (Mr. Green),
wie wärs damit:

Code: [AUSKLAPPEN]

Type player
 Field name$
End Type

player1.player = New player


Input player1\name$


Grüße,
LordChaos
 

BIG BUG

BeitragMo, Aug 02, 2004 21:23
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Aug 02, 2004 21:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Edit: Zu spät Wink

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

BeitragMo, Aug 02, 2004 21:31
Antworten mit Zitat
Benutzer-Profile anzeigen
@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 Evil or Very Mad Oder hast du deine Mails nicht abgerufen?

maximilian

BeitragMo, Aug 02, 2004 21:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Wieso denn billi? Confused
Eh, ich bin unschuldig, bin erst seit kurzdem zu Hause.

Grüße,
LordChaos

Seoman

BeitragMo, Aug 02, 2004 21:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich brauchte schnell irgendeinen Namen...

Jolinah

BeitragMo, Aug 02, 2004 22:05
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Aug 02, 2004 22:08
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Aug 02, 2004 22:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, Posts haben sich überschnitten, Jolinah hats schöner demonstiert. Wink

Grüße,
LordChaos

Seoman

BeitragMo, Aug 02, 2004 22:25
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Aug 02, 2004 22:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab mal ne Frage :
Wäre das in C++ mittels Präprozessor möglich ?
 

Dreamora

BeitragMo, Aug 02, 2004 22:48
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Aug 02, 2004 22:53
Antworten mit Zitat
Benutzer-Profile anzeigen
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. Confused
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. Crying or Very sad

sbrog

BeitragMo, Aug 02, 2004 23:02
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Aug 02, 2004 23:14
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Wink

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

BeitragDi, Aug 03, 2004 0:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist es nicht scheiß egal wie eine Variable heißt wenn ein Programm gerade läuft? Denkt mal drüber nach... 8)
 

Edlothiol

BeitragDi, Aug 03, 2004 11:58
Antworten mit Zitat
Benutzer-Profile anzeigen
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.
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.
BB wird in echten Maschinencode kompiliert.

Übrigens ist Java im Optimalfall sogar ein bisschen schneller als C++ Wink

Und Visual Basic .NET läuft logischerweise auch auf einer VM, ist ja .NET...

Brotenkopf

BeitragFr, Aug 12, 2011 8:53
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragFr, Aug 12, 2011 9:34
Antworten mit Zitat
Benutzer-Profile anzeigen
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

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group