Click here to Skip to main content
Click here to Skip to main content
Go to top

Serializing Data to / from an ASCII-file

, 9 Nov 2000
Rate this:
Please Sign up or sign in to vote.
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

  • Download source files - 24 Kb

    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)
    {
        <font color="#000080">if</font> (ar.IsStoring())
        {
            for (int i=0; i<m_String.GetUpperBound(); i++)
                ar.WriteString(m_Strings[i]+"\n");
        }
        <font color="#000080">else</font>
        {
            m_Strings.RemoveAll();
    
            int idx=0;
            CString t;
    
            TRY
            {
                <font color="#000080">while</font>(ar.ReadString(t))
                {
                    m_Strings.SetAtGrow(idx, t);
                    idx++;
                }
            }
            CATCH(CArchiveException, e)
            {
    <font color="#000080">#ifdef</font> _DEBUG
                TCHAR szCause[255];
                CString strFormatted;
                e->GetErrorMessage(szCause, 255);
    <font color="#008000">            // in real life, it's probably more
                // appropriate to read this from
                // a string resource so it would be easy to
                // localize</font>
                strFormatted = _T("CArciveException: ");
                strFormatted += szCause;
                AfxMessageBox(strFormatted); 
    <font color="#000080">#endif </font><font color="#008000">//_DEBUG</font>
            }
            END_CATCH;
    
            UpdateAllViews(NULL);
        }
    }
    
  • License

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

    Share

    About the Author

    Thomas Blenkers
    Web Developer
    Germany Germany
    PhD Chemist,
    programming with MSVC & MFC since 1996

    Comments and Discussions

     
    Generalhiiiii question! PinmemberArsineh Boodaghian26-Apr-09 7:16 
    AnswerRe: hiiiii question! PinmemberThomas Blenkers26-Apr-09 9:07 

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

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

    | Advertise | Privacy | Mobile
    Web02 | 2.8.140926.1 | Last Updated 10 Nov 2000
    Article Copyright 2000 by Thomas Blenkers
    Everything else Copyright © CodeProject, 1999-2014
    Terms of Service
    Layout: fixed | fluid