RichTextBox -> kódování při uložení   otázka

VB.NET, WinForms

Zdravím,

chtěl jsem se zeptat, zda je možné docílit náledujícího.

1) Mám vytvořen nějaký text v RichTextBoxu.

2) Chci ho uložit - zavolám si dialog

3) Chci si vybrat kódování a to:

3.1) Windows-1250

3.2) UTF-8 bez BOM

3.3) UTF-8 s BOM

4) Uložit v dané kódování

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

Něco jsem našel, ale ještě to musím rozpitvat a pochopit - kdyby to ale někomu pomohlo:

Form1.Tbox.Text = Form1.Tbox.Text & System.Text.Encoding.UTF8.GetString(buf)

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

A chcete ukládat čistý text nebo RTF? RTF by to totiž mělo zvládnout samo.

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

Potřeboval bych ukládat jak RTF text, tak i čistý text. Jenže ten text může být uložen jak v RichTextBoxu, tak i v TextBoxu (bohužel jak jsem zjistil, občas potřebuji text z RichTextBoxu "překlopit" do TextBoxu)

Doposud jsem vyzkoumal jen, jek ukládat text v nějakém kódování a to ne v těch, co bych si přál (ukládá to pouze ANSII, UTF-7/8/32)

Ovšem doposud jsem nezjistil, jak můžu zjistit kódování uloženého souboru (tj. vyberu si nějaký soubor a např. v txtKodovani.text chci vypsat, v jakém kódování je soubor uložen tj. win-1250, utf-8 s a bez BOM) a následně jej pak ve stejném kódování i uložit. Případně pokud mám nový text v RichTextBoxu, tak při uložení bych si rád vybral kódování, v jakém to chci uložit.

Na zápis pouze "odlehčeného" (tj. není tam vše) mého modelu používám:

        Dim SaveFile1 As New SaveFileDialog
        Dim myStreamWriter As System.IO.StreamWriter

        With SaveFile1
            .InitialDirectory = "C:\"
            .Filter = "Plain Text File (*.txt)|*.txt|All Files (*.*)|*.*"
            .DefaultExt = "txt"
            .CheckPathExists = True
            .Title = "Save"
            .ShowDialog(Me)
        End With

        Try
            myStreamWriter = System.IO.File.CreateText(SaveFile1.FileName)
            myStreamWriter.Write(txtVysledek.Text, System.Text.Encoding.UTF8)
            myStreamWriter.Flush()
        Catch ex As Exception
            If ex.Message <> "Empty path name is not legal." Then
                MessageBox.Show(ex.Message)
            End If
        Finally
            If Not myStreamWriter Is Nothing Then
                myStreamWriter.Close()
                myStreamWriter = Nothing
            End If
        End Try
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