PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : variable definieren (von "ausserhalb")



gordon2
09-10-2007, 19:37
hallo,

vielleicht kann mir jemand weiterhelfen.
das problem ist, ich habe ein executable [...].exe welches ein c++ script ausführt. (ich sollte erwähnen, dass dieses .exe beim kompilieren erzeugt wird)

in dem c++ script welches ausgeführt wird, wird eine id (hier 5) definiert:

code: (nur Auszug der code ist 300 zeilen lang)

TrigConf::CTPConfigOnline ctpco;
ctpco.setLvl1MasterTableId(5);
if (mtldr.load(ctpco)) ctpco.print();
else std::cout << "error loading CTPConfigOnline" << std::endl;

(zur information, dass executable liest ein menu aus einer datenbank (hier eben menu 5) .

wenn ich z.b. nun in menu 4 wechseln möchte, dann kann ich natürlich 4 anstelle 5 :confused:eingeben. ich muss dann aber neu compilieren und das dauert....

gibt es die möglichkeit die variable allgemein als x zu definieren und dann über z.b. ein shell script zu bestimmen

vielen dank,
gordon

peschmae
09-10-2007, 21:31
Ja klar geht das. Es gibt natürlich mehrere Varianten. Eine Möglichkeit ist via Kommandozeilenargumente.

Wie du das genau machst - auch da gibts wieder mehrere Varianten, entweder direkt auslesen (z.B. wie hier (http://www.galileocomputing.de/openbook/c_von_a_bis_z/c_015_000.htm#Xxx999328)) oder alternativ via eine Bibliothek wie GNU libreadline. Letztere hat den Vorteil dass das Interface dann ziemlich einfach uniform gestaltet werden kann (d.h. selbe Aufrufkonventionen für alle Programme)

MfG Peschmä

anda_skoa
11-10-2007, 13:36
Ich denke libreadline ist für das interaktive Einlesen vom Terminal, nicht?

Unter POSIX Kompatiblen kann man auch getopt() benutzen (man 3 getopt)

Ciao,
_

panzi
13-10-2007, 11:58
Du kannst dieses "setting" auch in eine config file packen.