rozložení slova   zodpovězená otázka

VB.NET, Algoritmy

Dobrý den jsem začátečník a mám malinkej problém potřeboval bych větu kterou napíši do textpoxu rozložit na jednotlivé znaky ale tak aby byla zachováná diakritika tim myslim pouze ě,ý,ř a tak dále plus samozřejm+ normální písmena a každé to písmeno by melo přiřazené jiné které by se vypsalo vlastně by to bylo jako jakýsi šifrofací program pokud to někdo nechápe tak by to vypadalo třeba

a=h

p=ž

ě=m

a tak dále,něco podobného jsem tu našel ale nebylo to přwsně ono a nefungovalo mi to a články "začíname s VB" jsem si přečetl ale i kdyš jsem měl pocit že tam je to co hledam neuměl jsem to z toho vytahnou tak jak bych potřeboval

děkuji za ochotu

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

Tady je jednoduchý kód:

    ' sifrovaci tabulka
    Const Sifra_Original As String = "abcdefghijklmnopqrst"
    Const Sifra_Vysledek As String = "tsrqponmlkjihgfedcba"

    Function Sifruj(ByVal text As String) As String
        Dim vysledek As String = String.Empty
	' projedem vsechny znaky v textu
        For Each znak As Char In text
            If Sifra_Original.Contains(znak) Then
		' znak v sifrovaci tabulce existuje, pridame jeho druhou podobu
                vysledek &= Sifra_Vysledek(Sifra_Original.IndexOf(znak))
            Else
                ' znak nebyl nalezen v sifrovaci tabulce, prida se original
                vysledek &= znak
            End If
        Next
        Return vysledek ' vratime vysledek
    End Function

Stačí si jen do šifrovací tabulky doplnit všechny potřebné znaky a pak je zavolat na obsah textboxu funkci Sifruj:

    TextBox1.Text = Sifruj(TextBox1.Text)
nahlásit spamnahlásit spam 0 odpovědětodpovědět

děkuji za odpověd ale nechce mi to fungovat někde jsem udělal chybu jen nevim kde mam podtrhana slova modrou vlnovkou a to slova funccion a pak sifra_.... to je nejprve zeleně potom dále v kodu modře co to znamená? kod jsem umístil do form_1 a textbox do textboxu a zřejmě tu bud někde ta chyba

ps:nejsem línej hledat chybu a nebo se to učit jen pomaleji chápu a je spousta věcí na které nepřijdu i kdyš je mám před nosem řekl bych že tohle bude jen nějaká banalita s špatnym umístěním kodu

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

Pošlete celý kód formuláře. Možná jste ho zapsal někam jinam.

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

zde je ale prosimvís pokud je to začátečnická chyba tak mne omluvte neska dělám samé blbosti mám den blbec :o)

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' sifrovaci tabulka
        Const Sifra_Original As String = "abcdefghijklmnopqrst"
        Const Sifra_Vysledek As String = "tsrqponmlkjihgfedcba"

    Function Sifruj(ByVal text As String) As String
        Dim vysledek As String = String.Empty
        ' projedem vsechny znaky v textu
        For Each znak As Char In Text
            If Sifra_Original.Contains(znak) Then
                ' znak v sifrovaci tabulce existuje, pridame jeho druhou podobu
                vysledek &= Sifra_Vysledek(Sifra_Original.IndexOf(znak))
            Else
                ' znak nebyl nalezen v sifrovaci tabulce, prida se original
                vysledek &= znak
            End If
        Next
        Return vysledek ' vratime vysledek
    End Function


    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        TextBox1.Text = Sifruj(TextBox1.Text)
    End Sub
End Class

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

Chybí Vám tam End Sub. A dejte si na formulář dva Textboxy, jeden bude pro normální text a druhý pro text zašifrovaný, jinak vám to nepůjde, leda že byste měl tlačítko.

Public Class Form1

    ' sifrovaci tabulka
    Const Sifra_Original As String = "abcdefghijklmnopqrst"
    Const Sifra_Vysledek As String = "tsrqponmlkjihgfedcba"

    Function Sifruj(ByVal text As String) As String
        Dim vysledek As String = String.Empty
        ' projedem vsechny znaky v textu
        For Each znak As Char In Text
            If Sifra_Original.Contains(znak) Then
                ' znak v sifrovaci tabulce existuje, pridame jeho druhou podobu
                vysledek &= Sifra_Vysledek(Sifra_Original.IndexOf(znak))
            Else
                ' znak nebyl nalezen v sifrovaci tabulce, prida se original
                vysledek &= znak
            End If
        Next
        Return vysledek ' vratime vysledek
    End Function

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        TextBox2.Text = Sifruj(TextBox1.Text)
    End Sub

End Class

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

děkuji ale omlouvám se stále mám podtržená ty slova sifra_... ale zbytek je v pořádku ale kdyš to spustim vždy mi to hodí chybu

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

Aha, omlouvám se, mám tam blbou chybu. Opravil jsem to v mém předdchozím příspěvku, aby tady nevisel chybný kód.

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

děkuji funguje to perfektně ale mám dotěrnej dotaz takřka nesouvisející s tématem ale přesto soucisející

k čemu to má sloužit je určitě jasné a otočit to aby to překládalo obráceně taky svedu ale mám kamaráda který má oční vadu a velmi špatně vidí nicméně nenechal se odradit a na počítači pracuje doposud i kdyš s obtížemy tak jsem zkusil namluvit jednotlivá písmena do pc a otáka je kdyš rozdělim kždé písmeno na jinej řádek a k němu dám kod že "pokud napíšu A přečte a napíše se Y" nehodlam sestrojovat program na syntezu hlasu nebo podobně jen jestli to bude schopné fungovat nebo je to blbost a nemá cenu se tim zabejvat a ještě jeden

existuje zpusob jak udělat vyjímku? myslim konkrétně u "ch" překladač ho překládá jako 2 písmena

děkuji za ochotu

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

Fungovat by to mohlo, ale na tohle už existují programy, mám známého, který je úplně slepý, ale s počítačem pracuje normálně, má čtečku, která mu to přečte.

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

tak ještě jeden dotaz prosím nepovedlo se mi to rozdělit na ty písmenka chtěl sem použít netodu "case" ale nechtělo se mi to ani zapnout navíc sem nenašel kde vložit wmp aby mi to přehrálo omlouvám se že to píšu sem ale nechtěl sem kvuli takové blbině zakládat nové téma

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

Již to je na:

http://vbnet.cz/forum-tema--273-program_...

 Public Class Form1
     ' do referencí přidejte knihovnu sapi.dll 
     '(standardně v C:\Program Files\Common Files\Microsoft Shared\Speech)
     Dim Voice As SpeechLib.SpVoice

     Private Sub Form1_Load(ByVal sender As System.Object, _ 
 ByVal e As System.EventArgs) Handles MyBase.Load
     Voice = New SpeechLib.SpVoice
     Voice.Speak("a b c d", SpeechLib.SpeechVoiceSpeakFlags.SVSFlagsAsync)
   End Sub
 End Class

S češtinou bude problém opatřit nějakou knihovnu

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