Попробуем написать простое приложение, на языке C#, преобразователь кода для html.
Здесь представлено "решение в лоб". Конечно оно не единственно.
Ⅰ. Интерфейс
Создадим новый проект в VS 2012.
- Открываем Visual Studio, выбираем
"Файл->Создать->Проект..". Выбираем "Visual C#"- > "Приложение Windows Forms".
Вводим имя проекта, допустим "CodeHtml", и нажимаем кнопку "Ok" - Добавим 2 RichTextBox'а и две кнопки(Button).
Ⅱ. Код
- Создадим двойным нажатием по кнопке(button1), событие
private void button1_Click(object sender, EventArgs e) { }
- И запишем код:
private void button1_Click(object sender, EventArgs e) { string s = richTextBox1.Text; int i = 0, j = 0; int k = 0; for (i = 0; i < s.Length; i++) { if (s[i].ToString() == "'")//Символы { k = i; i++; while (i < s.Length && s[i].ToString() == "'") i++; s = s.Insert(i + 1, "");//Добавляю 7 знаков s = s.Insert(k, "");//Добавляю 28 знаков i += 35; } else if (s[i] == '"')//Строки { k = i; i++; while (i < s.Length && s[i] != '"') i++; s = s.Insert(i + 1, "");//Добавляю 7 знаков s = s.Insert(k, "");//Добавляю 28 знаков i += 35; } else if (s[i] == '/')//Коментарии { if (i + 1 < s.Length) if (s[i + 1] == '/') { k = i; i += 1; while (i < s.Length && s[i] != '\n') i++; s = s.Insert(i, "");//Добавляю 7 знаков s = s.Insert(k, "");//Добавляю 28 знаков i += 35; } } else if (s[i] == 'i')//int, if { if (i + 3 < s.Length) if (s[i + 1] == 'n' && s[i + 2] == 't' && (s[i + 3] == ' ' || s[i + 3] == '[')) { s = s.Insert(i + 3, "");//Добавляю 7 знаков s = s.Insert(i, "");//Добавляю 28 знаков i += 35; } else if (s[i + 1] == 'f' && (s[i + 2] == ' ' || s[i + 2] == '(')) { s = s.Insert(i + 2, "");//Добавляю 7 знаков s = s.Insert(i, "");//Добавляю 28 знаков i += 35; } } else if (s[i] == 'f')//for { if (i + 3 < s.Length) if (s[i + 1] == 'o' && s[i + 2] == 'r' && (s[i + 3] == ' ' || s[i + 3] == '(')) { s = s.Insert(i + 3, "");//Добавляю 7 знаков s = s.Insert(i, "");//Добавляю 28 знаков i += 35; } } else if (s[i] == 'e')//for { if (i + 3 < s.Length) if (s[i + 1] == 'l' && s[i + 2] == 's' && s[i + 3] == 'e' && (s[i + 4] == ' ' || s[i + 4] == '(' || s[i + 4] == '\n')) { s = s.Insert(i + 4, "");//Добавляю 7 знаков s = s.Insert(i, "");//Добавляю 28 знаков i += 35; } } else if (s[i] == 'w')//for { if (i + 5 < s.Length) if (s[i + 1] == 'h' && s[i + 2] == 'i' && s[i + 3] == 'l' && s[i + 4] == 'e' && (s[i + 5] == ' ' || s[i + 5] == '(')) { s = s.Insert(i + 5, "");//Добавляю 7 знаков s = s.Insert(i, "");//Добавляю 28 знаков i += 35; } } else if (s[i] == 's')//for { if (i + 6 < s.Length) if (s[i + 1] == 't' && s[i + 2] == 'r' && s[i + 3] == 'i' && s[i + 4] == 'n' && s[i + 5] == 'g' && (s[i + 6] == ' ' || s[i + 6] == '[')) { s = s.Insert(i + 6, "");//Добавляю 7 знаков s = s.Insert(i, "");//Добавляю 28 знаков i += 35; } } } richTextBox2.Text = s; }
Ⅲ. Запуск
Нажимаем F5 проверяя работоспособность.
Если, что то не получилось, то вот исходник.
P.S.
Для удобства пользование сделаем кнопку копирования в буфер обмена готового текста.
Для �того добавим код во вторую кнопку:
private void button2_Click(object sender, EventArgs e) { Clipboard.SetDataObject(richTextBox2.Text); }
Ну вот и все. Спасибо за внимание :)
Добавить комментарий