how to initialize a variable whose name is passed as a string with a given value in a function in vc++6.0
-
My requirement is in MFC vc6.0 application I need a function which receives a string and a float value The string that i pass is a variable name used in the application. When the function is called the passed value should get assigned to the variable which is passed as a string Function SetVal(CString VarName, float value) { Suppose is Esim->Aut[35] and is 5.5665 This function should set Esim->Aut[35] to 5.5665 } Anybody pl help if this is possible.
-
My requirement is in MFC vc6.0 application I need a function which receives a string and a float value The string that i pass is a variable name used in the application. When the function is called the passed value should get assigned to the variable which is passed as a string Function SetVal(CString VarName, float value) { Suppose is Esim->Aut[35] and is 5.5665 This function should set Esim->Aut[35] to 5.5665 } Anybody pl help if this is possible.
C++ does not have a built-in way to associate a variable name with a string, at runtime. so, you will need to construct a way to create this association explicitly. there are many ways to do it. the most basic is something like this:
void SetVal(CString VarName, float value)
{
if (VarName=="Var1")
Var1 = value;
else if (VarName=="Var2")
Var2 = value;
else if (VarName=="Variable3")
Variable3 = value;
etc..
} -
My requirement is in MFC vc6.0 application I need a function which receives a string and a float value The string that i pass is a variable name used in the application. When the function is called the passed value should get assigned to the variable which is passed as a string Function SetVal(CString VarName, float value) { Suppose is Esim->Aut[35] and is 5.5665 This function should set Esim->Aut[35] to 5.5665 } Anybody pl help if this is possible.
I don't know of such a way but if you elaborate on your requirement someone here might help you on this. Another way would be to keep a check on the string passed and then compare it with what you want, thereafter set the value in the required value but then this may be an additional overhead depending on the parameters used in your code.
You talk about Being HUMAN. I have it in my name AnsHUMAN
-
C++ does not have a built-in way to associate a variable name with a string, at runtime. so, you will need to construct a way to create this association explicitly. there are many ways to do it. the most basic is something like this:
void SetVal(CString VarName, float value)
{
if (VarName=="Var1")
Var1 = value;
else if (VarName=="Var2")
Var2 = value;
else if (VarName=="Variable3")
Variable3 = value;
etc..
}Thanks for your help. But... This doesnt help me :-( Becoz I have more than 1000 variables in my application for which I have to write this code to check for the variable. Pl. suggest me if there is any direct way of doing the mapping.
-
Thanks for your help. But... This doesnt help me :-( Becoz I have more than 1000 variables in my application for which I have to write this code to check for the variable. Pl. suggest me if there is any direct way of doing the mapping.
manoharbalu wrote:
Pl. suggest me if there is any direct way of doing the mapping.
there is no direct way of doing this. C++ does not know the 'name' of your variables at runtime. if you have a lot of variables to deal with, you can use a std::map to map strings to floats. you will have to add the variable names to the map explicitly, but accessing the stored values will be simpler. Google "C++ variable name map". this is a common question, and there are a lot of solutions out there.
-
Thanks for your help. But... This doesnt help me :-( Becoz I have more than 1000 variables in my application for which I have to write this code to check for the variable. Pl. suggest me if there is any direct way of doing the mapping.
manoharbalu wrote:
Becoz I have more than 1000 variables in my application for which I have to write this code
Write yourself a little app that will output the variable names like this:
"variable-name", variable-name,
Do that for all the variables, paste the output into your program, and you have a table that you can search at run-time. By the way, use of sms-speak (Becoz, pl.) is not appreciated on this site.
Best wishes, Hans
-
My requirement is in MFC vc6.0 application I need a function which receives a string and a float value The string that i pass is a variable name used in the application. When the function is called the passed value should get assigned to the variable which is passed as a string Function SetVal(CString VarName, float value) { Suppose is Esim->Aut[35] and is 5.5665 This function should set Esim->Aut[35] to 5.5665 } Anybody pl help if this is possible.
manoharbalu wrote:
This function should set Esim->Aut[35] to 5.5665
So why not just use:
Esim->Aut[35] = 5.5665;
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Some people are making such thorough preparation for rainy days that they aren't enjoying today's sunshine." - William Feather
-
My requirement is in MFC vc6.0 application I need a function which receives a string and a float value The string that i pass is a variable name used in the application. When the function is called the passed value should get assigned to the variable which is passed as a string Function SetVal(CString VarName, float value) { Suppose is Esim->Aut[35] and is 5.5665 This function should set Esim->Aut[35] to 5.5665 } Anybody pl help if this is possible.