|
Then for what tasks C++.NET is better and for which tasks VC++ is better.
Dont you think VC++ is lot more complicated than C++.NET ?
And if not then give me a simple windows based application example, explaining how you would achieve in both.
Obviously i know C++ but on .NET platform. So i am keen to know which is better and what industry needs more these days ...
|
|
|
|
|
Clickety[^]
Press: 1500 to 2,200 messages in just 6 days? How's that possible sir?
Dr.Brad :Well,I just replied to everything Graus did and then argued with Negus for a bit.
|
|
|
|
|
What do you need exactly?
|
|
|
|
|
Hi all.
I write code:
<br />
CStringArray a1,a2;<br />
. . . . .<br />
. . . . . <br />
for(int i=0; i < a1.GetSize(); i++)<br />
a2.Add(a1.GetAt(i));<br />
<br />
a2.RemoveAt(Sel);
a2.FreeExtra();<br />
<br />
if(a1.GetUpperBound() == a2.GetUpperBound())<br />
return;
My progrum tell me that this string are equal.
Can help?
|
|
|
|
|
david bagaturia wrote: if(a1.GetUpperBound() == a2.GetUpperBound())
return;//and it come here
I can see there are no elements in a2 . Probably, there are no elements in a1 ,too. In this case
GetUpperBound returns -1. Which cause equality between these two.
|
|
|
|
|
|
So, what was problem? Were these two arrays are same ?
|
|
|
|
|
I agree with prasad_som. This is easy to test without your mystery ". . . ." lines of code:
CStringArray a1,a2;
a1.Add(L"String 1");
a1.Add(L"String 2");
a1.Add(L"String 3");
for(int i=0; i < a1.GetSize(); i++)
a2.Add(a1.GetAt(i));
a2.RemoveAt(1);
a2.FreeExtra();
if(a1.GetUpperBound() == a2.GetUpperBound())
return;
"Great job, team. Head back to base for debriefing and cocktails."
(Spottswoode "Team America")
|
|
|
|
|
|
Hello,
i have some data from a database, like this:
ID NAME
1 Micheal
2 Thomas
3 Michael
i want to read this from the database and put this data into a listbox.
the listbox entries look like this:
Michael
Thomas
Michael
how can i determine for example if i select the second "Michael" that this is the "Michael" from the database width ID = 3
is it possible to give the listbox-items id numbers like in html???
thanks
|
|
|
|
|
I wouldn't like to compare with HTML, but you can give list box items IDs.
int AddStringWithIDToListBox (CListBox &lb, CString s, DWORD dwID)
{
int nSel = lb.AddString (s);
if (nSel == LB_ERR) return nSel;
return lb.SetItemData (nSel, dwID);
}
You can get the ID at a later time with GetItemData (nSel) etc. The reason for the two step adding, then setting, is that you may have a sort style on your listbox - so insert order != order in list box.
I hope this help,
Iain.
|
|
|
|
|
that works fine!!!
thanks
|
|
|
|
|
Hi ..
I have designed a modal dialog box .. CMyAppDlg ..
If I declare CMyAppDlg * mapp .. code works well ..
If I declare CMyAppDlg mapp .. document pointer crashes ..
Pl help me ..
Thanking you ..
manisha
Manimau
|
|
|
|
|
kulkarni.manisha@rediffmail.com wrote: If I declare CMyAppDlg * mapp .. code works well ..
If I declare CMyAppDlg mapp .. document pointer crashes ..
Need to show some relevent code. What debugger says about crash ? Have you checked call stack ?
kulkarni.manisha@rediffmail.com wrote: Manimau
,nice sig.
|
|
|
|
|
kulkarni.manisha@rediffmail.com wrote: Manimau
prasad_som wrote: ,nice sig.
What does that mean?
|
|
|
|
|
brahmma wrote: What does that mean?
In marathi we(children ofcourse) call cat as maternal aunt of tiger( ).
And call her "Manimau".
|
|
|
|
|
I feel really dumb for asking this. For the this equation:
y = x * n
How can I calculate what the smallest integer n that I can multiply the rational number x by so that y also becomes an integer? Can this be done analytically, or will I need an algorithm?
Thanks
Joel Holdsworth
|
|
|
|
|
Could you rephrase the question. Not quite sure what you are trying to do.
|
|
|
|
|
So if x = 12.5 , the smallest n that I can multiply it by is 2, if I want an integer value of y (which in this case is 25). Is guess it might get more tricky if x = 3 1/3 or something.
Joel Holdsworth
|
|
|
|
|
In your origional post you referred to x and y as integers. In C/C++ integers have no decimal points, they are always rounded down to the nearest whole number. Perhaps you meant double or float .
As for the problem, divide 1 by the decimal.
1 / ( 12.5 - 12 ) == 2
|
|
|
|
|
Joel Holdsworth wrote: integer n that I can multiply the rational number x by so that y also becomes an integer
n : integer
x : rational
y : value of x * n which must equal to an integer
for this Joel, you must find what is the equivalent fraction of x ; i mean, 1.33333 is actually 4/3.
only then you have this, you know n because it equals the denominator of that fraction (here, 3 ).
but that's not that simple, because is the rational number equates to a too big fraction, you will find dumb values
|
|
|
|
|
y = x * n
Where:
“y” is an integer.
“x” is a rational number.
“n” is an integer.
Now a rational number is simply a number which can be represented in the form i1/i2 where both “i1” and “i2” are integers. So we have:
y = i1/i2 * n
If we reduce “x” (which equals i1/i2 ) to its simplest form then the number you’re after (“smallest integer n that I can multiply the rational number x by so that y also becomes an integer”) is simply “i2”. To reduce “x” to its simplest form simply divide “i1” and “i2” by the greatest common divisor of “i1” and “i2”.
Here’s a function to find the greatest common divisor of two integers:
int gcd(int a, int b)
{
for ( ;; )
{
if (a==0)
{
return (b<0) ? -b : b;
}
b %= a;
if (b==0)
{
return (a<0) ? -a : a;
}
a %= b;
}
}
With this function you can find the answer you’re after like this:
n = i2/gcd(i1, i2)
This information may be of some help. Still you have to be able to get “i1” and “i2” from “x”.
Steve
|
|
|
|
|
Joel,
I assume that because you are posting the question here you have to solve this using a representation of y as either a float or double, and this makes it tricky. If you have y, a rational and y=p/q, then as long as it is resuced form, your answer is q. If you represent y as a float or a double, then it is represented in base 2, so if q has any factors other than 2, then the ideal representation is infinite, and so what number is in stored for y as a double, is not exactly equal to y.
This is most easily seen in base 10, any fractions with factors other than 2 or 5 on the denominator, have infinite decimal expansions, and any finite expansion is approximate. So if y = 1/3, y approx = 0.3333333 to 7 places, and with this approximate y the answer to your question is 10000000. The same thing will happen with floats and doubles in programming.
Is there a way around this - well if you know the uncdertainty in the approximation, or if the denominator is less than some maximum value, then you can undo the rounding. The fast way to do this is to use a continued fraction expansion (something to read up on if you don't know of them) they are pretty easy. For example, the continued fraction expansion of 0.3333333 gives as approximations (1/3, 3333332/9999997, 3333333/10000000 - the last one is always exact) and it is pretty easy to pick 1/3 as the likely one. This took about 20 operations.
|
|
|
|
|
i have a function
AddItem(unsigned short*,...)
the strings which i have to pass to the AddItem function are obtained at runtiem and even the number of the strings too, with the code similar to the following.
OnButtonSubmit()
{
int count = GetItemCount();
CStringArray strArr;
for(int index=0;index<count;index++)
{
strArr.Add(db.GetColumnValue(index));
}
}
Now what i want is to pass the string which are added to the strArr as arguments to the AddItem function.
How can i do that?
Please help me.
Thank you.
KIRAN PINJARLA
|
|
|
|
|
I've to admit, I don't understand your problem. Strings are passed to functions like everything else ...
string strArr;<br />
<br />
AddItem(unsigned short*,string StrToPass);
If you are passing different strings number you should try to pass array of strings defined dynamically.
AddItem(unsigned short*,string *StrToPass,int Size);
string *strArr;
.<br />
.<br />
.<br />
int Size=30;
.<br />
.<br />
.<br />
strArr = new string [Size];
.<br />
.<br />
.<br />
AddItem(...,strArr,Size);
.<br />
.<br />
.<br />
delete [] strArr;
strArr=NULL;
Using dynamic arrays is similar to static arrays, you can also use
pointer notification instead of f.e. strArr[2] in order to increase program's speed.
Does it solve your problem?
-- modified at 6:24 Saturday 10th March, 2007
|
|
|
|