C# XMLDocument s FileStream

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Odpovědět
arxeiss
Začátečník
Začátečník
Uživatelský avatar
Registrován: 19. črc 2008
Bydliště: Krmelín (předměstí Ostravy)
Kontaktovat uživatele:

C# XMLDocument s FileStream

Příspěvek od arxeiss »

Mám problém,
píšu aplikaci a chtěl jsem, abych mohl zamykat projektový soubor, který si uživatel vytvoří, což ale klasický XMLDocument neudělá, našel jsem na netu, že můžu XMLDocument ukládat i přes stream, tak jsem to napsal, ale mám problém... Pokud výsledný XML soubor je menší než původní, tak to ponechá zbytek v souboru.

Původní soubor

Kód: Vybrat vše

<?xml version="1.0" encoding="utf-8"?>
<root>
   <vnoreny atribut="1"/>
</root>
programově ho poté upravím a výsledek by měl být

Kód: Vybrat vše

<?xml version="1.0" encoding="utf-8"?>
<root>
   <vnoreny/>
</root>
jenomže jak zkončí zápis, tak v souboru zůstane zbytek dat, takže výsledný soubor vypadá

Kód: Vybrat vše

<?xml version="1.0" encoding="utf-8"?>
<root>
   <vnoreny/>
</root>ny/></root>
Takto dělám se streamy a XMLDocumentem

Kód: Vybrat vše

XMLstream = new FileStream(path, FileMode.Open, FileAccess.ReadWrite, FileShare.Read);
xml.Load(XMLstream);

ukládání:
XMLstream.Flush();
XMLstream.Position = 0;
xml.Save(XMLstream);
Díky za jakoukoli radu
PC : CPU: C2D E5200 2500Mhz @ 3750Mhz a AC Freezer 7PRO MB: Gigabyte GA-P31-DS3L rev.2,1 GPU: ATI Radeon 3650HD 256MB RAM: A-Data Vitesta 2x2GB Zdroj: Forton OEM 400W HDD: Samsung F2 500GB
Netbook : Asus EEE CPU: Intel Atom N270 1,6GHz RAM: A-Data 2GB HDD: 250GB 5400ot/min
arxeiss
Začátečník
Začátečník
Uživatelský avatar
Registrován: 19. črc 2008
Bydliště: Krmelín (předměstí Ostravy)
Kontaktovat uživatele:

Re: C# XMLDocument s FileStream

Příspěvek od arxeiss »

Vyřešeno, musím dát místo XMLstream.position = 0;

Kód: Vybrat vše

XMLstream.SetLength(0);
tím se mi soubor vymaže a nastaví na začátek opět.
PC : CPU: C2D E5200 2500Mhz @ 3750Mhz a AC Freezer 7PRO MB: Gigabyte GA-P31-DS3L rev.2,1 GPU: ATI Radeon 3650HD 256MB RAM: A-Data Vitesta 2x2GB Zdroj: Forton OEM 400W HDD: Samsung F2 500GB
Netbook : Asus EEE CPU: Intel Atom N270 1,6GHz RAM: A-Data 2GB HDD: 250GB 5400ot/min
Odpovědět

Zpět na „Programování a web“