Zamiana dwóch liczb

0

Witam, piszę właśnie aplikację do szyfrowania tekstu i jestem już na takim etapie, że nie wiem co zrobić z problemem zamieniania dwóch liter. Chodzi o to, że użytkownik wpisuje na przykład tekst "Jestem Paolo". Chcę żeby zamiast litery "j" zawsze pojawiało się np. "k", tak samo z innymi literami.

Z góry dziękuję za pomoc,
malpiszon04

0

Prosty przykład:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
      {
         e.KeyChar = (char)(e.KeyChar + 1);
      }

Kwestia dodania warunków naprzykład jak ktoś kliknie z lub 9.
Coś więcej można powiedzieć jak pokażesz co już masz zrobione.

0

W Dictionary możesz przechowywać odpowiadające wartości znaków, dodatkowo na podstawie Keys możesz sprawdzać czy użytkownik podał prawidłowy znak. Następnie implementujesz zdarzenie KeyPress tak jak pokazał @DibbyDum

0
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;

namespace CryptoFall
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
            
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog1 = new OpenFileDialog();
            openFileDialog1.Filter = "Text file (*.txt)|*.txt|All files (*.*)|*.*";

            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                richTextBox1.Text = File.ReadAllText(openFileDialog1.FileName);
            }            
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if ((domainUpDown1.Text.Length) == 0)
            {
                MessageBox.Show("Nie podano klucza");
            }
            else
            {
                int klucz = Convert.ToInt16(domainUpDown1.Text);
                if (klucz < 56)
                {
                    if (domainUpDown2.Text == "ASCII (standard)")
                    {
                        richTextBox2.Clear();
                        byte[] asciiBytes = Encoding.ASCII.GetBytes(richTextBox1.Text);
                        for (int i = 0; i < asciiBytes.Length; i++)
                        {
                            int szyfr = asciiBytes[i];
                            szyfr = szyfr ^ klucz;
                            richTextBox2.AppendText(Convert.ToChar(szyfr).ToString());
    //                        richTextBox2.AppendText(Convert.ToChar(asciiBytes[i]).ToString());
                        }
                    }
                    if (domainUpDown2.Text == "Ceasar cipher")
                    {
                        //tu ma być o zamianie liter
                    }
                }
                else
                {
                    MessageBox.Show("Key is from behind the range (0-55)");
                }
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveFileDialog1 = new SaveFileDialog();
            saveFileDialog1.Filter= "Text file (*.txt)|*.txt| All files (*.*)|*.*";

            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                File.WriteAllText(saveFileDialog1.FileName, richTextBox2.Text);
            }            

        }

        private void pictureBox1_Click(object sender, EventArgs e)
        {
        }
    }
}
 
0

Gdybyście mogli to podać w formie kodu, bo szczerze mówiąc jestem nowy :P

1 użytkowników online, w tym zalogowanych: 0, gości: 1