Variablen mit AnsiString benennen
-
Folgendes vereinfachtes Problem:
Ich arbeite mit dem Borland C++ Builder. Angenommen, es existieren die variablen int a,b,c,d mit bestimmten Werten. Wenn der Benutzer in ein Edit-Feld zB "a" eingibt, soll zB mit einer MessageBox der Wert von a ausgegeben werden. Wie realisiert man das?
Unter PHP würde ich schreiben:
<? //URL: http://.../test.php?parameter1=a¶meter2=c $a=5; $b=7; $c=9; $parameter1= $_GET[parameter1]; $parameter2= $_GET[parameter2]; echo $$parameter1; //Ausgabe: 5 echo $$parameter2; //Ausgabe: 9 ?>
-
Dieser Thread wurde von Moderator/in davie aus dem Forum C++ in das Forum Borland C++ Builder (VCL/CLX) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Hallo,
vielleicht hilft das Event TEdit::OnKeyDown weiter?
Gruß,
Robert
-
So wie ich das sehe, geht das nur mit einer if-Abfrage.
if(Edit11->Text=="a") { ShowMessage(a); } //etc....Und dein php-code ist in meinen Augen eine Sicherheitslücke, weil so über das script aller möglicher scheiß aufgerufen und ausgegeben werden kann. Bitte so nieeeeemals verwenden!!! Immer dieses If-Gerüst benutzen, auch wenns umständlicher ist!!
-
Ich habe ein Beispiel in PHP verfasst, weil es da SEHR einfach geht. Noch mal zur Verdeutlichung...
anderes beispiel, selbe problematik:
Das Programm soll eine Variable erzeugen, dessen Namen der Benutzer festlegt (zB Per eingabe in ein Edit-Feld). Es geht, wie schon vorher, darum, dass der Variablenname aus einem AnsiString erzeugt wird.
Wieder das parallele Beispiel in PHP:
<? //URL: http://..../test.php?name=irgendwas&wert=5 $name_neue_variable = $_GET[name]; $wert_neue_variable = $_GET[wert]; $$name_neue_variable = $wert_neue_variable; //Dasselbe wie: $irgendwas = 5; //Sowohl Name als auch Wert der Variablen wurden vom Benutzer festgelegt. Doppel-$ beachten! ?>Das ganze ließe sich ja durch ein zweidimensionales AnsiString-array lösen: in variable[i][0] steht dann immer der "Name", in variable[i][1] der Wert.
dann kann der benutzer in ein Edit-Feld den namen eingeben, per for-schleife werden dann die variable[i][0]-Werte durchsucht und beim fund wird variable[i][1] ausgegeben.Frage Nummer zwei: kann variable[i][0] AnsiString sein und variable[i][1] Int?
PS: ich bin im gebiet c++ ein neuling, habe bisher immer nur PHP und VB (zum spaß) programmiert... bin von PHP ein bisschen verwöhnt... (VB eigentlich weniger)
-
Hallo
Das Programm soll eine Variable erzeugen, dessen Namen der Benutzer festlegt (zB Per eingabe in ein Edit-Feld). Es geht, wie schon vorher, darum, dass der Variablenname aus einem AnsiString erzeugt wird.
Sowas geht in C++ nicht. Variablen werden vom Namen und Typ fest definiert. Vielleicht solltest du mal ein C++ Tutorial durchlesen, denn das ist eine elementare Sache.
/Edit: Vielleicht hilft die TStringList->Values[] weiter. Dort kannst du einen Wert unter einem Bezeichner speichern und wieder auslesen.
bis bald
akari
-
Sowas geht in C++ nicht. Variablen werden vom Namen und Typ fest definiert. Vielleicht solltest du mal ein C++ Tutorial durchlesen, denn das ist eine elementare Sache.
z.T. Tutorials: Keine Angst, ich hab Literatur zu Hause... aber es steht ja auch nicht in jedem PHP-Tutorial (in Büchern sehr wohl, denke ich), das man mit $$ dynamisch Variablen erzeugen kann.
Dann werd ich's halt mal mit TStringsList probieren.