AnsiString als Befehl ausführen



  • Habe da eine Frage, ich baue mir aus verschiedenen AnsiStrings einen Befehl zusammen, den ich in für eine Schleife benützen möchte. Egal wie ich aber das Ding zusammenstelle, ich bekomme es nicht hin, dass er den Inhalt als Befehl ausführt, sondern er behandelt ihn immer nur als String und bekomme so eine Fehlermeldung, dass ein AnsiString nicht in Integer konvertiert werden kann.

    AnsiString Komponentenname = "Radio";
    AnsiString Befehl = "";
    AnsiString Pfad = "Komponente->" + Komponentenname +".vector.size()"
    
    if(unsigned int i = 0; i < Pfad; i++)        //<-- Diese Pfadangabe wird immer als AnsiString behandelt
    {
    

    Habe da auch probiert
    Pfad.c_str()
    StrToInt(Pfad)
    system(Pfad.c_str())

    aber ich bekomme es nicht hin, dass er mir den Inhalt als Befehl ausführt. Was mache ich da falsch?



  • Alles. Geht nicht. Was du willst ist einen Befehl interpretieren, nur ist C++ keine Interpretersprache wie PHP oder Perl oder was auch immer.

    Außerdem heißt es wohl for(... und nicht if(... aber i < ein string? Häh?



  • hast recht, ist ein for

    das geht also nicht. schade. Wollte mir so einen Variablen Loggerbeiträgegenerator erstellen, der je nach komponente den richtigen Beitrag in ein Logbuch schreibt.



  • Grundsätzlich weiß ein Programm zur Laufzeit nicht, wie die Variablen, Klassen, Funktionen etc. heißen. Daher kann das nicht klappen.



  • Hallo

    Wenn du in das richtige Forum geschaut hättest (Borland C++ Builder Forum) und dort zuerst in die FAQ, hättest du nachlesen können wie man VCL-Komponenten als Array ansprechen kann.

    Du must zwar so oder so dein Konzept umstellen, aber die FAQ wird dir helfen es trotzdem elegant in einer Schleife packen zu können.

    bis bald
    akari



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum VCL (C++ Builder) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten