Načítání souboru   otázka

VB.NET, I/O operace

Ahoj!

VB 2010

Můžete mi prosím někdo vysvětlit proč,když načítám txt.soubor

metodou

FileOpen(1, C:\soubor.txt, OpenMode.Input) 
        Do Until EOF(1)
            Input(1, soubor)
            soubor_txt = soubor_txt & Space(2) & soubor & Wrap
        Loop

Se mi všechny znaky načítají správně,ale pokud použiji

Dim R As New IO.StreamReader(C:\soubor.txt)
        txt.Text = R.ReadToEnd
        R.Close()

se mi znaky,např. š,ř,ý atd. načítají a vypisují nesmyslně(obrázky) !!!?

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

Protože FileOpen zcela náhodou používá správné kódování, kdežto u StreamReaderu jste explicitně žádné nespecifikoval, takže se použije výchozí, ve kterém soubor není.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

a jak bych měl tedy event. to kódování správně specifikovat?

A je jedno který z uvedených způsobů použiji,má některý

z nich svoje přednosti a naopak,nebo jsou obě varianty rovnocené?

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

Ja by som skúsil použiť tento konštruktor: http://msdn.microsoft.com/en-us/library/...

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

Děkuji za odkaz,tak jsem vyzkoušel a nic.

Ale....,sypu si popel na hlavu,já totiž kombinoval obě uvedené

varianty,což zřejmě asi nebyl moc "dobrý nápad".

Ukládal jsem přes OpenFile a načítal přes StreamReader???

Pokud jsem to upravil do jednoho formátu(StreamReader),tak to vypadá už funkčně.

Takže se omlouvám....moje blbost.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

První způsob vůbec nepoužívat, je to přežitek z VB6. U druhého způsobu používat místo Dim konstrukci Using...End Using. Kódování specifikujte jako druhý parametr v konstruktoru StreamReaderu, musíte samozřejmě vědět, v jakém je soubor uložen.

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

Než jsem dopsal,tak mezitím další reakce,takže

moje odpověď viz.příspěvek o dva výše.

Děkuji všem

nahlásit spamnahlásit spam 0 odpovědětodpovědět

StreamReader si nevie zistiť kódovanie sám? :(

nahlásit spamnahlásit spam 0 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