Archived

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

Gammastrahler

Problem with reading large text files

Recommended Posts

Gammastrahler    150
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
JohnBolton    1372
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