Click here to Skip to main content
15,891,905 members
Articles / Desktop Programming / MFC

Serializing Data to / from an ASCII-file

Rate me:
Please Sign up or sign in to vote.
2.00/5 (2 votes)
9 Nov 2000CPOL 73.4K   1.5K   19   2
A series of articles that resulted from experimenting with adding Drag and Drop features to my existing application

This article is part of the drag and drop interface samples.

  1. Serializing ASCII Data
  2. Modeless child dialog
  3. Modeless sibling dialog
  4. The drag source
  5. The MFC drop target
  6. 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:

C++
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);
            // in real life, it's probably more
            // appropriate to read this from
            // a string resource so it would be easy to
            // localize
            strFormatted = _T("CArciveException: ");
            strFormatted += szCause;
            AfxMessageBox(strFormatted); 
#endif //_DEBUG
        }
        END_CATCH;

        UpdateAllViews(NULL);
    }
}

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Web Developer
Germany Germany
PhD Chemist,
programming with MSVC & MFC since 1996

Comments and Discussions

 
Generalhiiiii question! Pin
Arsineh Boodaghian26-Apr-09 7:16
Arsineh Boodaghian26-Apr-09 7:16 
AnswerRe: hiiiii question! Pin
Thomas Blenkers26-Apr-09 9:07
Thomas Blenkers26-Apr-09 9:07 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.