IO.StreamWriter - znovu načíst soubor   otázka

VB.NET

Zdravím, potřebuji po x položkách soubor ukončit a do stejné proměné vložit nový soubor, nevím zda je to možné ale nějak mi to hlásí pořád chyby - ta druhá deklarace je samozřejmě špatně ale nevím ten správný syntax.

Dim soubor_zapis As New IO.StreamWriter("import_01.xml")
soubor_zapis.WriteLine("<?xml ... ?>")
.
.
If (pocet = 10000) Then
   soubor_zapis.Close()
   Dim soubor_zapis As New IO.StreamWriter("import_02.xml")
End If

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Ty uvozovky prosím neřešte v WriteLine - pouze překlep.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Moc VB.NET neznám, ale není to tím, že tu proměnnou soubor_zapis znovu deklarajute? Mělo by stačit té proměnné jenom přiřadit znovu StreamWritter s jinou cestou k souboru. Takto by to vypadalo v C# (ve VB.NET to bude podobné).

System.IO.StreamWritter soubor_zapis = new System.IO.StreamWritter("import_01.xml");
// neco zapisu
// soubor_zapis.Close();
soubor_zapis = new System.IO.StreamWritter("import_02.xml");

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Proboha, pro zápis XML dat používejte XmlDocument nebo XmlTextWriter. Ve výše uvedeném kódu se nikde neinkrementuje "pocet" a pro přiřazení do už jednou deklarované proměnné se už nepoužívá Dim.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

To platí pochopitelně pro malé až střední soubory, pro více dat (řádově několika megové soubory) je vhodný XmlTextWriter.

nahlásit spamnahlásit spam -3 / 3 odpovědětodpovědět

Otázkou je, jestli větší množství dat má cenu cpát do XML - ono pokud ho nechcete držet v paměti, tak se pak čte přes XmlTextReader pěkně blbě.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Pitomost a to hlavně z důvodu, že se s XmlTextWriterem a hlavně XmlTextReaderem neuvěřitelně špatně pracuje. To že se celé XML v případě XmlDocumentu načte do paměti vůbec ničemu nevadí, pro větší a velké množství dat se stejně XML nepoužívá. XML ve velikosti řádově MB používá třeba Live Messenger pro ukládání historie konverzací a rozhodně je lepší když se to celé načte do paměti a pár vteřin předtím se počká, než aby se to trhalo kvůli načítání z disku při skrolování a hledání v oknu historie.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback