Ik lees een file in met CFile:
CFile FileIn, FileOut;
FileIn.Open(FileInPath, CFile::modeRead , NULL);
nCount = FileIn.SeekToEnd();
FileIn.SeekToBegin();
char* pBuffer = new char[nCount];
FileIn.Read(pBuffer,nCount);
// copy buffer in a CString object
Str = pBuffer;
// clean up
delete pBuffer;
File.Close();
Dit werkt goed. Maar nu wil ik deze CString weer wegschrijven in een andere file.
nCount = Str.GetLength();
FileOut.Open(PathOut, CFile::shareDenyNone | CFile::modeWrite | CFile::modeCreate, NULL);
FileOut.Write(Str, nCount);
FileOut.Close();
Dit lijkt ook goed te gaan. Probleem is echter, dat CString::GetLength() een te groot getal returned.
Ik lees een file in van 1405 bytes. GetLength() returned 1432 bytes.
Er wordt nu dus teveel weggeschreven. Weet iemand waarom CString::GetLength() teveel bytes returned? Of hoe ik dit anders moet doen?
Tussen lezen en schrijven wordt er iets met de file gedaan. Dus de nCount van de ingelezen file kan ik niet gebruiken.
De bewerkingen vinden plaats met m.b.v. CString, dus het moet via CString blijven werken.
CFile FileIn, FileOut;
FileIn.Open(FileInPath, CFile::modeRead , NULL);
nCount = FileIn.SeekToEnd();
FileIn.SeekToBegin();
char* pBuffer = new char[nCount];
FileIn.Read(pBuffer,nCount);
// copy buffer in a CString object
Str = pBuffer;
// clean up
delete pBuffer;
File.Close();
Dit werkt goed. Maar nu wil ik deze CString weer wegschrijven in een andere file.
nCount = Str.GetLength();
FileOut.Open(PathOut, CFile::shareDenyNone | CFile::modeWrite | CFile::modeCreate, NULL);
FileOut.Write(Str, nCount);
FileOut.Close();
Dit lijkt ook goed te gaan. Probleem is echter, dat CString::GetLength() een te groot getal returned.
Ik lees een file in van 1405 bytes. GetLength() returned 1432 bytes.
Er wordt nu dus teveel weggeschreven. Weet iemand waarom CString::GetLength() teveel bytes returned? Of hoe ik dit anders moet doen?
Tussen lezen en schrijven wordt er iets met de file gedaan. Dus de nCount van de ingelezen file kan ik niet gebruiken.
De bewerkingen vinden plaats met m.b.v. CString, dus het moet via CString blijven werken.