|
|
works.. but
I get some charecters in the beginning
my code is
------
unsigned char baSlots[6];
m_1E2.GetLine(0,temp,12);
sscanf(temp,"%x",baSlots);
MessageBox(CString(baSlots));
----------
when I enter "123456789abc" in edit box,
I get "iiiiiiiiiiiiiiiiiii123456789abc"
- KK
|
|
|
|
|
|
Interesting, but why send temp through nData just to get to baSlots ?
"The greatest good you can do for another is not just to share your riches but to reveal to him his own." - Benjamin Disraeli
|
|
|
|
|
Yes my mistake, sorry.
Regards
Anil
|
|
|
|
|
kk_vp wrote: unsigned char baSlots[6];
m_1E2.GetLine(0,temp,12);
sscanf(temp,"%x",baSlots);
MessageBox(CString(baSlots));
----------
when I enter "123456789abc" in edit box,
I get "iiiiiiiiiiiiiiiiiii123456789abc"
What you have here is not going to work. Not only will baSlots need to be a numeric variable, it will not come close to holding the value 0x123456789abc (roughly 20 trillion).
|
|
|
|
|
give a example of what you have and what you want?
Regards
Anil
|
|
|
|
|
kk_vp wrote: CHAR[6]
It itself is string1, exactly what problem are u facing.. are you want to convert HEX to DEC and then show on Messagebox
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
|
|
|
|
|
|
toxcct wrote: not exactly... it will display correctly only if it is null-terminated...
Offcourse but he didn't mention that!, is he
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
|
|
|
|
|
kk_vp wrote: Or is there another way to check the value of an integer other than messagebox during the execution of the MFC application.
Yes there is another way much more simple: use your debugger (press F5 and then you can set breakpoints with F9).
Or at least if this is used to debug your program.
|
|
|
|
|
I had tried debugger, but it was stopping somewhere and could not get it to working; but after reading your message, pressed F5 and everythingz fine. Thanks!
but when I enter 123456789abc, I get
[0x0] 0x90 ''
[0x1] 0x78 'x'
[0x2] 0x56 'V'
[0x3] 0x34 '4'
[0x4] 0xcc 'Ì'
[0x5] 0xcc 'Ì'
could be something simple.. but not finding it..
code is:
unsigned char baSlots[6];
m_1E2.GetLine(0,temp,12);
sscanf(temp,"%x",&baSlots);
- KK
|
|
|
|
|
The problem is probably here:
m_1E2.GetLine(0,temp,12);
What are you trying to do exactly ? And what is m_1E2 ? I suppose it is an edit control ?
Why do you specify 12 for the limit of the string ? It is 6 and not 12 !
|
|
|
|
|
That I had changed to check something else.
changed it back.
but still, I get
[0x0] 0x56 'V'
[0x1] 0x34 '4'
[0x2] 0x12 ''
[0x3] 0x00 ''
[0x4] 0xcc 'Ì'
[0x5] 0xcc 'Ì'
code is::
unsigned char baSlots[6];
m_1E2.GetLine(0,temp,6);
sscanf(temp,"%x",&baSlots);
- KK
|
|
|
|
|
I think I have given you tha answer in the last mail.
any way If I have done any mistake them plz let me know.
I don't thing that scanf %x in allowed for string.
%x for interger
%s for string
you have problem there only and I rectify that in the last reply.
Regards
Anil
|
|
|
|
|
i don't know what you're trying to do, but if you're assigning 123456789abc into your char[3] variable, firstly, there's not enough characters to store it, and secondly, a C-style string must be null terminated.
now, please specify what format is supposed to be the char[3] because we are blind and so cannot help you much.
if you want some help, you have to give us the minimum informations for us to understand exactly what you're doing wrong.
so start it again, ,and please answer these questions :
1. how is defined m_1E2
2. how is defined temp
3. how is initialized baSlots ?
4. what is m_1E2.GetLine() supposed to do ?
5. is your 123456789abc value an integer or a string.
6. not a question but an important point : if your writing the 123456789abc integer into the temp string, temp must be at least 13 characters wide, so that the 13st character can be '\0' (null termination)...
hope you understand now.
TOXCCT >>> GEII power [toxcct][VisualCalc 2.20][VCalc 3.0 soon...]
|
|
|
|
|
Toxcct,
please see the code below :
unsigned char baSlots[6];
MessageBox(m_1E2val); //m_1E2val is member variable of edit
//box with type string
sscanf(m_1E2val,"%x",&baSlots);
now, when I check in debug,
after entering "123456789abc" in the editbox and on reaching the function with the above code,
with MessageBox(m_1E2val), I get correct string whatever I have entered.
but after
sscanf(m_1E2val,"%x",&baSlots)
in the debug window I see baSlots as
[0x0] 0xbc '¼'
[0x1] 0x9a 'š'
[0x2] 0x78 'x'
[0x3] 0x56 'V'
[0x4] 0xcc 'Ì'
[0x5] 0xcc 'Ì'
I am wondering where the 1234 went?
- KK
|
|
|
|
|
change the sscanf(m_1E2val,"%x",&baSlots); into this :
for (int i = 0; i < 6; i++) {
::sscanf(m_iE2val.Mid(i*2, 2), "%x", &baSlots[i]);
}
actually, i read here the hexa characters 2 by 2...
TOXCCT >>> GEII power [toxcct][VisualCalc 2.20][VCalc 3.0 soon...]
-- modified at 9:19 Friday 10th February, 2006
|
|
|
|
|
err.
I get Unhandled exception 0xc00000005 Access violation
- KK
|
|
|
|
|
I got it working. added '&' before baSlots.
sscanf(m_1E2val.Mid(i*2, 2), "%x", &baSlots[i]);
now I get it correctly. still do not understand what is wrong with
sscanf(m_1E2val, "%x", &baBeaconSlots);
- KK
|
|
|
|
|
kk_vp wrote: added '&' before baSlots
yeah, fixed my mistake...
kk_vp wrote: still do not understand what is wrong with sscanf(m_1E2val, "%x", &baBeaconSlots);
in fact, "%x" reads 2 hexadecimal characters and writes a single byte... so, you'd have to write
::sscantf(m_1E2val, "%x%x%x%x%x%x", baSlots[0], baSlots[1], baSlots[2], baSlots[3], baSlots[4], baSlots[5]);
which is worse - IMO - as the little for() loop i provided you...
TOXCCT >>> GEII power [toxcct][VisualCalc 2.20][VCalc 3.0 soon...]
-- modified at 9:46 Friday 10th February, 2006
|
|
|
|
|
kk_vp wrote: MessageBox(m_1E2val); //m_1E2val is member variable of edit
If m_1E2val is indeed a CEdit object, then this statement is in error. Are you sure it's not a CString object instead?
"The greatest good you can do for another is not just to share your riches but to reveal to him his own." - Benjamin Disraeli
|
|
|
|
|
It is a CString type member variable of CEdit
I got it working. added '&' before baSlots.
sscanf(m_1E2val.Mid(i*2, 2), "%x", &baSlots[i]);
now I get it correctly. still do not understand what is wrong with
sscanf(m_1E2val, "%x", &baBeaconSlots);
- KK
|
|
|
|
|
kk_vp wrote: It is a CString type member variable of CEdit
There's no such thing. It's either one or the other.
kk_vp wrote: still do not understand what is wrong with
sscanf(m_1E2val, "%x", &baBeaconSlots);
Since you are the only one that knows what baBeaconSlots is, we can only guess as to what the problem might be.
"The greatest good you can do for another is not just to share your riches but to reveal to him his own." - Benjamin Disraeli
|
|
|
|
|
DavidCrow wrote: There's no such thing. It's either one or the other.
he certainly don't know exactly what he's doing (MFC is sometimes dark for newbies).
he might want to say a CString on a CEdit member variable...
DavidCrow wrote: Since you are the only one that knows what baBeaconSlots is, we can only guess as to what the problem might be.
hmm, seems that baSlots turned into baBeaconSlots , but anyway, it remains char[6] .
but i fixed his problem now...
TOXCCT >>> GEII power [toxcct][VisualCalc 2.20][VCalc 3.0 soon...]
|
|
|
|