ifstream -> xml cdata



  • Hi,

    wie bekomme ich am besten ein ifstream( Binäre Daten ) in eine CDATA Section eines XML Files?
    Könnte mich da mal jemand in die Richtige Richtung schubsen)?

    THX schonmal

    grüssle 🙂

    - VS2005

    Lösung gefunden.
    Und falls es interessiert, schitteböhn:

    CString oBuff(m_strEmfFileName);
    	long lFileSize;
    	struct stat fileSizeVal;
    
    	ifstream ifs;
    	ifs.open( m_strEmfFileName, ios::binary );
        ifs.seekg(ios::beg);
    
    	if (stat(_bstr_t(m_strEmfFileName), &fileSizeVal) == 0)
    	{
    		lFileSize = fileSizeVal.st_size;
    		if(lFileSize <= 0)
    			return;
    	}
    	SAFEARRAY* psa = SafeArrayCreateVector( VT_UI1, 0L, lFileSize);
        ifs.read((char*)psa->pvData, lFileSize);
     	ifs.close();
    
    	CString strXmlOutput = m_strLibraryPath + _T("BinTest.xml");
    	m_xmlParser.CreateAndLoad( strXmlOutput );
    	MSXML2::IXMLDOMElementPtr pImage = m_xmlParser.GetNode(NULL,_T("Object"));
    
    	HRESULT hr = pImage->put_dataType(CComBSTR(_T("bin.base64")));
    
    	VARIANT var;
    	VariantInit(&var);
    	var.parray = psa;
    	var.vt = (VT_ARRAY | VT_UI1 );
    	pImage->put_nodeTypedValue( var );
    
    	m_xmlParser.Save( m_strXmlFile );
    


  • edit

    - kann gelöscht werden



  • Hi nochmal,

    weitere Frage zum Thema: ich wollte das ganze nun komprimiert( z.B. ZIP Format ) in das XML File speichern, möglichst ohne fremde Tools.
    Gibt es/ gab es nicht mal etwas derartiges in Windows?

    Packen mit C++, entpacken mit C#

    thx schonmal

    grüssle 🙂


Anmelden zum Antworten