|
Hi All
I am a fresher in C/C++, I want to read first 2 bytes from a BMP image, when i open the file in "rb" and use scanf to read first 2 bytes, I am unable to read. Can i know the reason.
Thnx in advance
regards
|
|
|
|
|
Off the top of my head,
scanf reads from stdin (e.g. Keyboard on a console
sscanf processes a given string.
fscanf reads from a FILE.
So you are probably using the wrong one!
Iain.
|
|
|
|
|
Since i have two read two bytes from the file I have to use
fscanf
regards
Chandrashekar HS
|
|
|
|
|
fscanf... The mysterious function
If you just want to read 2 bytes I wouldn't use the fscanf function, just use the fread function:
BYTE bytes[2];<br />
fread(bytes, 1, 2, fileptr);
If you insist on using the fscanf function:
BYTE bytes[2];<br />
fscanf(fileptr, "%c%c", &bytes[0], &bytes[1]);
Best regards,
Dominik
_outp(0x64, 0xAD);
and
__asm mov al, 0xAD __asm out 0x64, al
do the same... but what do they do??
(doesn't work on NT)
|
|
|
|
|
Hi Reichi
Thnx for u'r solution, Actually i used fread to solve the problem but i was interested to know on what occasions do we use fscanf,one occasion as of i know is when u write a file and read it in the same order as u write. Is this the only occasions we use fscanf or is there any other use.
I thought fread takes more memory cycles so thought of using fscanf. So I went inside the fscanf function but could not make out it works, Now i found a solution i need not know
Thanx a lot for u'r help.
Regards
Chandrashekar H.S
|
|
|
|
|
fscanf can be used for almost anything, reading single bytes, ints, whole strings, etc.
fread is MUCH faster than fscanf! When you use the fscanf function the program must first parse your format string before reading and storing the data! If you need speed, use fread.
Best regards,
Dominik
_outp(0x64, 0xAD);
and
__asm mov al, 0xAD __asm out 0x64, al
do the same... but what do they do??
(doesn't work on NT)
|
|
|
|
|
I liked the last sentence
sounds like an ad:
"If you need speed, use fread"
Papa
while (TRUE)
Papa.WillLove ( Bebe ) ;
|
|
|
|
|
hmm .. not sure I'd be using fscanf here .. you also havnt said 'what you wish to interpret the first two bytes as, ie a long, char values etc'
I dont have my dev machine up, but I guess what you're asking for is :-
char str [2];
fscanf (pFile, "%c%c", str);
however, I'd be more inclined to use fread(), here's a full example
int main () {
FILE * pFile;
long lSize;
char * buffer; // For two chars as in this example could just use
// static char buffer[2];
lSize = 2;
pFile = fopen ( "myfile.bmp" , "rb" );
if (pFile==NULL) exit (1);
// allocate memory to contain # chars we want
// bit of an overkill in this case
buffer = (char*) malloc (lSize);
if (buffer == NULL) exit (2);
// copy the file into the buffer.
fread (buffer,1,lSize,pFile);
// do something with buffer here
// terminate
fclose (pFile);
free (buffer);
return 0;
}
|
|
|
|
|
Hi Garth
Thnx for u'r help
regards
Chandrashekar H.S
|
|
|
|
|
hi,
We have created an activex Ctrl using MFC.
It has serialize method in its COleControl derived class.
Now myActiveX control is inserted in a powerpoint presentation.
Whenever power point slideshow ends, then the serialize method is getting called.
How to avoid serialize method is getting called at the end of slide show mode?
I am trying by setting SetModifiedFlag(false) but no result.
pls help me.
dadsadasd
|
|
|
|
|
Hello, Im wondering if anyone knows if its possible to get the fileversion over http on a file withouth having to download it?
I know I can do HttpQueryInfo HTTP_QUERY_LAST_MODIFIED but I would really like to get the fileversion, not just what the server thinks is the last modified date...
This is for automatically updating a local file btw... and I guess I could use a version file on the server to read from, but it would be so much smoother to just query the version directly kinda like what GetFileVersionInfo does but for files on the web...
the coolest would off course be if there was an API called GetInternetFileVersionInfo which could do it either via ftp or http protocol...
anyway anyone?
|
|
|
|
|
I'm open to correction, but I'd have to say no.
The logic is fairly simple. The protocols are for fetching any old file. Whereas file version info
(as I understand you to mean) is only available for specific kinds of files. What is the version
info of a notepad file? a bitmap? etc.
One way around could be to have a server side page to return version info on specified files.
eg.
http://foo.bar/versioninfo.asp?file=\downloads\example.exe
could return version info for the specified file, or "Get lost, no version info here!" otherwise.
I hope my musings helped, rather than mislead!
Iain.
|
|
|
|
|
Dear Friends,
I've developed a software in Visual C++ (Dialog Based Application). Actually the purpose of this software is to make the database entry/view operations easy. There are in all 19 dialog boxes realted to various tables of database. The backend database is SQL Server.
The problem is that i am making this software for client and the client wants "report generation" in the form of print outs and eMails. The client given me samples of around 50 different reports
Now i want to know that what strategy should i follow in order to make reports. Do i need Crystal Reports software. Is there any other easy way. Please suggest me something..
Imtiaz
|
|
|
|
|
Hello,
I have a problem to show the source code in the calling stack window( ALT+7 ) in debug mode.
I use VC++ 6.0 on my Win98 laptop.
There is no source code displayed from MFC-functions and SDK functions in the calling stack window, although the correct directories are set in the option dialog of the VC++.
With the same VC++ project file (.dsp and .dsw ) I don't have this problems with my Win2000 PC.
I checked all directories and I reinstall VC++ some times, but I don't get the source code.
Which problem does my laptop have ?
|
|
|
|
|
Try reinstalling the latest service pack for DevStudio.
That should do the trick.
Jens
|
|
|
|
|
What is the maximum size of string you can place in a Edit Box on a dialog. Note I am using CString for holding the text.
I am using a multiline Edit Box to display the progress of a test activity. The display used to be a DOS Window.
I use the following code to update the output:-
m_Output.SetFocus(); // Set the focus to main window of the GUI
m_strNewText.Format ("%s", m_pMsg->OutputText); // Copy from memory into m_strNewText variable
m_strOutput+= m_strNewText + crlf; // Total display string;
SetDlgItemText(IDC_OUTPUT1, m_strOutput); // Display the new text appended onto old text
UpdateData(); // Refresh the control
I was thinking of checking the size and restarting when getting near the limit, but what is the limit?
|
|
|
|
|
Edit controls on Windows NT/ 2000:0x7FFFFFFE characters
Edit controls on Windows 95/98: 0x7FFE characters
this for single line edit controls
you can change this with : CEdit::SetLimitText
|
|
|
|
|
Many thanks for the information.
|
|
|
|
|
An edit box can hold 216 characters. A CString object can hold 231 characters. Use a richedit control if you want to hold more.
"The pointy end goes in the other man." - Antonio Banderas (Zorro, 1998)
|
|
|
|
|
Does that mean the system allocates with 2^31 bytes of memory space for it whenever I create a CString object? If so, is it not a good idea to using CStrings if I know the string has only few hundred bytes long?
Thanks
|
|
|
|
|
J.B. wrote:
Does that mean the system allocates with 2^31 bytes of memory space for it whenever I create a CString object?
Only if it needs to. Check out how memory is allocated in CString::AllocBuffer() .
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
Hi, I am a newbie in Visual C++ Programming concerning MFCs. I'm just wondering what the difference is between string and CString?
Strings have strcpy, strlen, etc, etc... So what are its counterparts for CStrings? What are the different ways of manipulating CStrings?
Thank you so much in advance
|
|
|
|
|
Equivalents:
C CString<br />
strcpy: =<br />
strlen: cs.GetLength()<br />
strcat: +=<br />
strlwr: cs.MakeLower()
Best regards
|
|
|
|
|
Thank you so much
I have another question... Do you guys know what command is used in order to check if a certain character can be found in a string?
I have searched through the net and found out that there is such a thing as Find for CStrings, although everytime I add #include "CString.h" which is necessary to use find, it doesn't work and only produce errors...
How do you use the commnad Find or is there any other way to check if a character can be fond in a CString?
Thank you once again
|
|
|
|
|
CString::Find
MSDN:
// First example demonstrating
// CString::Find ( TCHAR ch )
CString s( "abcdef" );
ASSERT( s.Find( 'c' ) == 2 );
ASSERT( s.Find( "de" ) == 3 );
// Second example demonstrating
// CString::Find( TCHAR ch, int nStart )
CString str("The stars are aligned");
int n = str.Find('e', 5);
ASSERT(n == 12);
Papa
while (TRUE)
Papa.WillLove ( Bebe ) ;
|
|
|
|