|
Hello
I want to put a paragraph of text into a char buffer, but I am not allowed to wrap the text onto a new line. Does anyone know how I can over come this
char buf[2000] = "text text text text text
text text text text text
text text text text text text text";
error C2001: newline in constant
error C2146: syntax error : missing ';' before identifier 'text'
error C2065: 'text' : undeclared identifier
error C2146: syntax error : missing ';' before identifier 'text'
...
|
|
|
|
|
char buf[2000] = "text text text text text "
"text text text text text "
"text text text text text text text";
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
You should be able to do this:
char buf[2000] = "text text text text\
text text text text\
text text text";
No generalization is 100% true.
Not even this one.
|
|
|
|
|
If all you want to do is wrap your source file to keep everything nice and tidy, the answer has already been posted.
If you want to embed line breaks in your text, just replace each newline with the character sequence '\n', as in:
char buf[2000] = "text text text text text \n"
"text text text text text \n"
"text text text text text text text";
--------
I don't think that I'm a sell-out but I do "Enjoy Coke!"... -- Bloodhound Gang, The Inevitable Return Of The Great White Dope
|
|
|
|
|
In my Doc I have this:
struct ItemInfo
{
CString name;
CString catagory;
CString description;
}itemInfo;
Then in my View I have this:
CMyDoc* pDoc = GetDocument();
<br>
CString itemName = GetItemName();
<br>
pDoc->itemInfo.name = itemName;
But the program aborts when it reaches the last line of code, why?
-Raffi
|
|
|
|
|
Excuse me if I'm pointing the obvious, but have you checked that pDoc is !=NULL ? Apart from this, the way you're accessing itemInfo seems OK to me.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Did you accidently put the struct definition outside the public scope?
/moliate
Two o'clock and walking through familiar London - Or what was familiar London before the cursor deleted certain certainties -
I watch a suit and tie man giving suck to the Psion Organizer lodged in his breast pocket
its serial interface like a cool mouth hunting his chest for sustenance, familiar feeling, and I'm watching my breath steam in the air.
Neil Gaiman - Cold Colours
|
|
|
|
|
pDoc != NULL and the struct is public. Anyother possible problems?
-Raffi
|
|
|
|
|
Stop just before the offending line and inspect the contents of pDoc . Does it look OK (reasonable data)?
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
How do I see the contents of pDoc?
-Raffi
|
|
|
|
|
Insert a breakpoint at the offending line (F9), run the program, wait till it stops at your breakpoint, press SHIFT+F9 (I think) and type pDoc in the window that appears.
If you need more help about using the debuger, have a look at the documentation that comes with your VC++ --it shouldn't be hard to locate the section on debugging.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
It says pDoc is 0x00781ca0. Dose that look "OK"?
-Raffi
|
|
|
|
|
Man, use your brain. Inspect the contents of pDoc .
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
[quote]It says pDoc is 0x00781ca0. Dose that look "OK"? [/quote]
this is the memory location only!
|
|
|
|
|
Hi,
Im doing a small program in which I want to detect if the internet is being accessed by the user.
I have searched for this but with no luck
|
|
|
|
|
This article shows how to check if you're connected to the internet.
/ravi
"There is always one more bug..."
http://www.ravib.com
ravib@ravib.com
|
|
|
|
|
OK. I'm trying to open a file and red the last 128 bytes in it, but if it's the first time i read the file since the computer has been started, it only reads the first three chars. It's strange cause when i then open it right after i have opened it the first time, it works. here's the code:
int GetID3(char *szFile)
{
HANDLE hFile;
DWORD dwBytesRead;
DWORD dwFileSize;
OVERLAPPED FilePos;
OVERLAPPED *pFilePos = &FilePos;
hFile = CreateFile (szFile, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);
dwFileSize = GetFileSize(hFile, NULL);
pFilePos->Offset = dwFileSize - 128;
pFilePos->OffsetHigh = 0;
pFilePos->hEvent = 0;
gszID3Tag[0] = '\0';
ReadFile(hFile, gszID3Tag, 128, &dwBytesRead, pFilePos);
gszID3Tag[128] = '\0';
if (dwBytesRead != 128)
return 0;
else
return 1;
}
Can anyone help me?
Thankyou.
|
|
|
|
|
Since you're reading the file in overlapped mode, it is perfectly possible that the reading operation has not completed when ReadFile returns. Try inserting a Sleep(1000) right after ReadFile (of course this is not the way to fix the problem, but it can help you to determine its cause.)
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Is there any particular reason why you are using overlapped IO? With the simple function that you have posted, it does not seem to be necessary. Also you should be calling CloseHandle on hFile when you are done with the file handle, this function is leaving the file open.
With overlapped IO, the ReadFile function becomes asynchronous and the function may not be done reading the file when you move on to the next statements in your function rather than in normal mode the function does not continue until all of the data that you requested has been read from the file. If the function is not yet done it will return a ERROR_IO_PENDING value indicating that it is not yet done.
Since your file is left open, the data is probaly stored in the file cache and the next time you go to read from that file, it automatically has the data to place into your buffer and that is why it is available.
My suggestion, if you can avoid the overlapped IO, I would do it.
Good Luck!
Build a man a fire, and he will be warm for a day Light a man on fire, and he will be warm for the rest of his life!
|
|
|
|
|
The reason iøm using the overlapped structure, is because i can specify a file offset, 128 bytes from the end of the file, is there another way to do this?
|
|
|
|
|
<a href="http://msdn.microsoft.com/library/en-us/fileio/filesio_8iwi.asp">SetFilePointer</a> .
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Oh, thankyou, works perfectly
|
|
|
|
|
I would like to add one more thing, when you do overlapped IO, you are responsible for keeping track of the file pointer and other things. When you do normal, or synchronous IO, the file pointer is stored with the HANDLE, or hFile that you create. AFter you read from a file the file pointer will automatically be updated to the end of where you read the data with normal IO, as opposed to you having to update the pointer yourself.
Good Luck.
Build a man a fire, and he will be warm for a day Light a man on fire, and he will be warm for the rest of his life!
|
|
|
|
|
I'll just add that if you read this file using an ifstream you'd probably find the code a lot simpler as well as safer.
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
And you don't spend much time with the opposite sex working day and night, unless the pizza delivery person happens to be young, cute, single and female. I can assure you, I've consumed more than a programmer's allotment of pizza, and these conditions have never aligned. - Christopher Duncan - 18/04/2002
|
|
|
|
|
Thankyou )
|
|
|
|