Latin alphabet in the Cyrillic alphabet

Program "Latin in the Cyrillic alphabet and vice versa" is intended to change the text that was written in the Serbian Latin alphabet, in the Serbian Cyrillic alphabet, and vice versa. This time, it's not clear console application, but a Windows Form application, for many reasons, but most important is the functionality of the graphical user interface that allows text input in many ways, a most important and easiest is through the select-copy-paste operation. When you create aWindows Form application, in the Form Designer add a few controls:

RichTextBox : for text entry and writing of changed text, with the initial text that serves as a guide,

Two buttons : for selection in which direction will be made changes,

The text label for the title's of RichTextBox's that the user sees on the screen,

Set changes of the window size only by clicking the Maximize or Minimize button on window.

On the picture you can see how graphical user interface appears.

Afther creating a GUI, I have selected four events in which program code is stored.

First MainFormSizeChanged (object sender, EventArgs e) event that is activated when

the user click on the "MaximizeBox" or "MinimizeBox" for resizing the window when it is

necessary to change the size and position of the controls within the window.

When the window size increases the size of the control is increased and vice versa.

See attached code:

void MainFormSizeChanged(object sender, EventArgs e)

{

//

// povećava veličinu richTextBox 1 i 2 kada se maksimalno poveća

// veličina osnovnog prozora

//

if (WindowState == FormWindowState.Maximized)

{

richTextBox1.Width = 575;

richTextBox2.Width = 575;

}

//

// smanjuje veličinu richTextBox 1 i 2 kada se veličina osnovnog prozora

// vrati na normalu

//

if (WindowState == FormWindowState.Normal)

{

richTextBox1.Width = 255;

richTextBox2.Width = 255;

}

}

The second and third events are virtually identical but have different purposes and therefore a different code.

It is a Button1Click (object sender, EventArgs e) and Button2Click (object sender, EventArgs e)

which are activated when the user clicks on one of the buttons, which are used to select the direction

of text changes that will be made. One button and its event is a change from the Latin alphabet

the Cyrillic, a second button has reversed text changes. In accordance has been written program code:

void Button1Click(object sender, EventArgs e)

{

//

// Promena iz latiničnog u ćirilično pismo

//

richTextBox2.Text = String.Empty;

richTextBox2.Refresh();

//

// Deklaracija promenljivih

//

string LatiničniTekst = String.Empty;

string ĆiriličniTekst = String.Empty;

string LatiničnoSlovo = String.Empty;

string ĆiriličnoSlovo = String.Empty;

int DužinaLatiničnogTeksta = 0;

int Brojač = 0;

bool Promena = false;

richTextBox1.Refresh();

LatiničniTekst = richTextBox1.Text;

DužinaLatiničnogTeksta = LatiničniTekst.Length;

while ( Brojač < DužinaLatiničnogTeksta )

{

Promena = false;

ĆiriličnoSlovo = String.Empty;

if (Brojač != DužinaLatiničnogTeksta - 1 )

{

LatiničnoSlovo = LatiničniTekst.Substring(Brojač,2);

switch (LatiničnoSlovo)

{

case "lj" : ĆiriličnoSlovo = "љ";Promena = true;

break;

case "nj" : ĆiriličnoSlovo = "њ";Promena = true;

break;

case "dž" : ĆiriličnoSlovo = "џ";Promena = true;

break;

case "Lj" : ĆiriličnoSlovo = "Љ";Promena = true;

break;

case "Nj" : ĆiriličnoSlovo = "Њ";Promena = true;

break;

case "Dž" : ĆiriličnoSlovo = "Џ";Promena = true;

break;

}

if ( Promena == true )

{

Brojač += 2;

ĆiriličniTekst += ĆiriličnoSlovo;

}

}

if ( ĆiriličnoSlovo == String.Empty & Promena == false)

{

LatiničnoSlovo = LatiničniTekst.Substring(Brojač,1);

switch (LatiničnoSlovo)

{

case "a" : ĆiriličnoSlovo = "а";Promena = true;

break;

case "b" : ĆiriličnoSlovo = "б";Promena = true;

break;

case "v" : ĆiriličnoSlovo = "в";Promena = true;

break;

case "g" : ĆiriličnoSlovo = "г";Promena = true;

break;

case "d" : ĆiriličnoSlovo = "д";Promena = true;

break;

case "đ" : ĆiriličnoSlovo = "ђ";Promena = true;

break;

case "e" : ĆiriličnoSlovo = "е";Promena = true;

break;

case "ž" : ĆiriličnoSlovo = "ж";Promena = true;

break;

case "z" : ĆiriličnoSlovo = "з";Promena = true;

break;

case "i" : ĆiriličnoSlovo = "и";Promena = true;

break;

case "j" : ĆiriličnoSlovo = "ј";Promena = true;

break;

case "k" : ĆiriličnoSlovo = "к";Promena = true;

break;

case "l" : ĆiriličnoSlovo = "л";Promena = true;

break;

case "m" : ĆiriličnoSlovo = "м";Promena = true;

break;

case "n" : ĆiriličnoSlovo = "н";Promena = true;

break;

case "o" : ĆiriličnoSlovo = "о";Promena = true;

break;

case "p" : ĆiriličnoSlovo = "п";Promena = true;

break;

case "r" : ĆiriličnoSlovo = "р";Promena = true;

break;

case "s" : ĆiriličnoSlovo = "с";Promena = true;

break;

case "t" : ĆiriličnoSlovo = "т";Promena = true;

break;

case "ć" : ĆiriličnoSlovo = "ћ";Promena = true;

break;

case "u" : ĆiriličnoSlovo = "у";Promena = true;

break;

case "f" : ĆiriličnoSlovo = "ф";Promena = true;

break;

case "h" : ĆiriličnoSlovo = "х";Promena = true;

break;

case "c" : ĆiriličnoSlovo = "ц";Promena = true;

break;

case "č" : ĆiriličnoSlovo = "ч";Promena = true;

break;

case "š" : ĆiriličnoSlovo = "ш";Promena = true;

break;

case "A" : ĆiriličnoSlovo = "А";Promena = true;

break;

case "B" : ĆiriličnoSlovo = "Б";Promena = true;

break;

case "V" : ĆiriličnoSlovo = "В";Promena = true;

break;

case "G" : ĆiriličnoSlovo = "Г";Promena = true;

break;

case "D" : ĆiriličnoSlovo = "Д";Promena = true;

break;

case "Đ" : ĆiriličnoSlovo = "Ђ";Promena = true;

break;

case "E" : ĆiriličnoSlovo = "Е";Promena = true;

break;

case "Ž" : ĆiriličnoSlovo = "Ж";Promena = true;

break;

case "Z" : ĆiriličnoSlovo = "З";Promena = true;

break;

case "I" : ĆiriličnoSlovo = "И";Promena = true;

break;

case "J" : ĆiriličnoSlovo = "Ј";Promena = true;

break;

case "K" : ĆiriličnoSlovo = "К";Promena = true;

break;

case "L" : ĆiriličnoSlovo = "Л";Promena = true;

break;

case "M" : ĆiriličnoSlovo = "М";Promena = true;

break;

case "N" : ĆiriličnoSlovo = "Н";Promena = true;

break;

case "O" : ĆiriličnoSlovo = "О";Promena = true;

break;

case "P" : ĆiriličnoSlovo = "П";Promena = true;

break;

case "R" : ĆiriličnoSlovo = "Р";Promena = true;

break;

case "S" : ĆiriličnoSlovo = "С";Promena = true;

break;

case "T" : ĆiriličnoSlovo = "Т";Promena = true;

break;

case "Ć" : ĆiriličnoSlovo = "Ћ";Promena = true;

break;

case "U" : ĆiriličnoSlovo = "У";Promena = true;

break;

case "F" : ĆiriličnoSlovo = "Ф";Promena = true;

break;

case "H" : ĆiriličnoSlovo = "Х";Promena = true;

break;

case "C" : ĆiriličnoSlovo = "Ц";Promena = true;

break;

case "Č" : ĆiriličnoSlovo = "Ч";Promena = true;

break;

case "Š" : ĆiriličnoSlovo = "Ш";Promena = true;

break;

}

if ( Promena == true)

{

Brojač++;

ĆiriličniTekst += ĆiriličnoSlovo;

}

else

{

Brojač++;

ĆiriličniTekst += LatiničnoSlovo;

}

}

}

richTextBox2.Text = ĆiriličniTekst;

Refresh();

}

void Button2Click(object sender, EventArgs e)

{

//

// Promena iz ćiriličnog u latinično pismo

//

richTextBox1.Text = String.Empty;

richTextBox1.Refresh();

//

// Deklaracija promenljivih

//

string ĆiriličniTekst = String.Empty;

string LatiničniTekst = String.Empty;

string LatiničnoSlovo = String.Empty;

string ĆiriličnoSlovo = String.Empty;

int DužinaĆiriličnogTeksta = 0;

int Brojač = 0;

bool Promena = false;

richTextBox2.Refresh();

ĆiriličniTekst = richTextBox2.Text;

DužinaĆiriličnogTeksta = ĆiriličniTekst.Length;

while ( Brojač < DužinaĆiriličnogTeksta )

{

Promena = false;

LatiničnoSlovo = String.Empty;

ĆiriličnoSlovo = ĆiriličniTekst.Substring(Brojač,1);

switch (ĆiriličnoSlovo)

{

case "a" : LatiničnoSlovo = "a";Promena = true;

break;

case "б" : LatiničnoSlovo = "b";Promena = true;

break;

case "в" : LatiničnoSlovo = "v";Promena = true;

break;

case "г" : LatiničnoSlovo = "g";Promena = true;

break;

case "д" : LatiničnoSlovo = "d";Promena = true;

break;

case "ђ" : LatiničnoSlovo = "đ";Promena = true;

break;

case "е" : LatiničnoSlovo = "e";Promena = true;

break;

case "ж" : LatiničnoSlovo = "ž";Promena = true;

break;

case "з" : LatiničnoSlovo = "z";Promena = true;

break;

case "и" : LatiničnoSlovo = "i";Promena = true;

break;

case "ј" : LatiničnoSlovo = "j";Promena = true;

break;

case "к" : LatiničnoSlovo = "k";Promena = true;

break;

case "л" : LatiničnoSlovo = "l";Promena = true;

break;

case "љ" : LatiničnoSlovo = "lj";Promena = true;

break;

case "м" : LatiničnoSlovo = "m";Promena = true;

break;

case "н" : LatiničnoSlovo = "n";Promena = true;

break;

case "њ" : LatiničnoSlovo = "nj";Promena = true;

break;

case "о" : LatiničnoSlovo = "o";Promena = true;

break;

case "п" : LatiničnoSlovo = "p";Promena = true;

break;

case "р" : LatiničnoSlovo = "r";Promena = true;

break;

case "с" : LatiničnoSlovo = "s";Promena = true;

break;

case "т" : LatiničnoSlovo = "t";Promena = true;

break;

case "ћ" : LatiničnoSlovo = "ć";Promena = true;

break;

case "у" : LatiničnoSlovo = "u";Promena = true;

break;

case "ф" : LatiničnoSlovo = "f";Promena = true;

break;

case "х" : LatiničnoSlovo = "h";Promena = true;

break;

case "ц" : LatiničnoSlovo = "c";Promena = true;

break;

case "ч" : LatiničnoSlovo = "č";Promena = true;

break;

case "џ" : LatiničnoSlovo = "dž";Promena = true;

break;

case "ш" : LatiničnoSlovo = "š";Promena = true;

break;

case "А" : LatiničnoSlovo = "A";Promena = true;

break;

case "Б" : LatiničnoSlovo = "B";Promena = true;

break;

case "В" : LatiničnoSlovo = "V";Promena = true;

break;

case "Г" : LatiničnoSlovo = "G";Promena = true;

break;

case "Д" : LatiničnoSlovo = "D";Promena = true;

break;

case "Ђ" : LatiničnoSlovo = "Đ";Promena = true;

break;

case "Е" : LatiničnoSlovo = "E";Promena = true;

break;

case "Ж" : LatiničnoSlovo = "Ž";Promena = true;

break;

case "З" : LatiničnoSlovo = "Z";Promena = true;

break;

case "И" : LatiničnoSlovo = "I";Promena = true;

break;

case "Ј" : LatiničnoSlovo = "J";Promena = true;

break;

case "К" : LatiničnoSlovo = "K";Promena = true;

break;

case "Л" : LatiničnoSlovo = "L";Promena = true;

break;

case "Љ" : LatiničnoSlovo = "Lj";Promena = true;

break;

case "М" : LatiničnoSlovo = "M";Promena = true;

break;

case "Н" : LatiničnoSlovo = "N";Promena = true;

break;

case "Њ" : LatiničnoSlovo = "Nj";Promena = true;

break;

case "О" : LatiničnoSlovo = "O";Promena = true;

break;

case "П" : LatiničnoSlovo = "P";Promena = true;

break;

case "Р" : LatiničnoSlovo = "R";Promena = true;

break;

case "С" : LatiničnoSlovo = "S";Promena = true;

break;

case "Т" : LatiničnoSlovo = "T";Promena = true;

break;

case "Ћ" : LatiničnoSlovo = "Ć";Promena = true;

break;

case "У" : LatiničnoSlovo = "U";Promena = true;

break;

case "Ф" : LatiničnoSlovo = "F";Promena = true;

break;

case "Х" : LatiničnoSlovo = "H";Promena = true;

break;

case "Ц" : LatiničnoSlovo = "C";Promena = true;

break;

case "Ч" : LatiničnoSlovo = "Č";Promena = true;

break;

case "Џ" : LatiničnoSlovo = "Dž";Promena = true;

break;

case "Ш" : LatiničnoSlovo = "Š";Promena = true;

break;

}

if ( Promena == true)

{

Brojač++;

LatiničniTekst += LatiničnoSlovo;

}

else

{

Brojač++;

LatiničniTekst += ĆiriličnoSlovo;

}

}

richTextBox1.Text = LatiničniTekst;

Refresh();

}

Finally, the fourth event is triggered when the user clicks on the url address that is listed in

the text, when you start Windows Explorer with the given address.

See code:

void RichTextBox1LinkClicked(object sender, LinkClickedEventArgs e)

{

//

// Ukoliko korisnik u okviru teksta klikne na url adresu

// pokreće se internet explorer sa zadatom adresom

//

System.Diagnostics.Process.Start(e.LinkText);

}

Of course at the beginning of the program must be specified using reference:

/*

* Created by SharpDevelop.

* User: PC

* Date: 31.01.2012

* Time: 18:23

*

* To change this template use Tools | Options | Coding | Edit Standard Headers.

*/

using System;

using System.Windows.Forms;

namespace Latinično_u_Ćirilično

{

/// <summary>

/// Description of MainForm.

/// </summary>

public partial class MainForm : Form

{

public MainForm()

{

This program has no written algorithm, try yourself, it can also be upgraded to enable the user to click a button, open theFolderBrowserDialog and find a text document containing the text to change, load it to the RichTextBox and then change the text, and then to record changed text in the new document. In the attachment you have a complete Solution for IDE SharpDevelop requires netframework4.0, so if you use it ,you can download it to run the upgrade program as desired. You also have the exe file in the Release folder, which you can start and see how the program works.

All the best,

Author