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&parameter2=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.


Anmelden zum Antworten