• Advertisement

Archived

This topic is now archived and is closed to further replies.

Problem with reading large text files

This topic is 5422 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi, i have written a wrapper class for text files. It works fine for many text files i have tested for now. But just for example, i used it to read "DDraw.h" and copy it to a new file. DDraw.h is approximately 137 KB in size, and i have compared the size of bytes in the Explorer with that returned by GetSize(), they were equal. But reading this file and copying the content to a new file, the last 50-60 lines are not in the destination file! The memory buffer is allocated without any error. Look at this source code, please!
    
char *CTextFile::Read(bool close)
{
	if (!Open("r")) return false;

	size_t fSize = GetSize();

	if (fSize == 0) return 0;

	char* buf = new char [fSize+1];

	ZeroMemory(buf, fSize+1);

	if (!buf) return 0;

	fread(buf, fSize, 1, _file);

	if (close) Close();

	return buf;
}
    
Can someone give me a hint what could be wrong here? thanks Gammastrahler [edited by - Gammastrahler on March 19, 2003 3:03:24 AM]

Share this post


Link to post
Share on other sites
Advertisement
Either the GetSize() function does not return the correct value or the code for "copying the content to a new file" is broken.
Since it is a text file, the problem might be caused by "\r\n" vs. "\n".

Share this post


Link to post
Share on other sites

  • Advertisement