This article is part of the drag and drop interface samples.
- Serializing ASCII Data
- Modeless child dialog
- Modeless sibling dialog
- The drag source
- The MFC drop target
- The TBTextTarget class
Preface
The CArchive
object has methods called ReadString
and WriteString
. ReadString
reads a complete line stopping at, but not including the Carriage return/Line feed pair. WriteString
puts the specified string value into the archive, but without the CR/LF. ReadString
detects EOF by a returning zero which can be used in a while-conditional.
This is from the sample application, step zero:
void CInterfaceDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
for (int i=0; i<m_String.GetUpperBound(); i++)
ar.WriteString(m_Strings[i]+"\n");
}
else
{
m_Strings.RemoveAll();
int idx=0;
CString t;
TRY
{
while(ar.ReadString(t))
{
m_Strings.SetAtGrow(idx, t);
idx++;
}
}
CATCH(CArchiveException, e)
{
#ifdef _DEBUG
TCHAR szCause[255];
CString strFormatted;
e->GetErrorMessage(szCause, 255);
strFormatted = _T("CArciveException: ");
strFormatted += szCause;
AfxMessageBox(strFormatted);
#endif //_DEBUG
}
END_CATCH;
UpdateAllViews(NULL);
}
}