-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathConverter.bsl
123 lines (76 loc) · 4.25 KB
/
Converter.bsl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
Процедура Проба1()
//Сообщить(КодСимвола("*"));
//Перейти ~Конец;
ТекстHtml = "<p>";
// Есть символы которые должны вызывать
СпецСимволы = "";
МассивТегов = Новый Массив();
МассивТегов.Добавить("</p>");
КолСимволов = СтрДлина(ТекстИсходник);
КонтентТекущейСтроки = "";
КолПробеловПодряд = 0;
ПредыдущийСимвол = "";
КолОдинаковыхСимволов = 0;
Для НомерСимвола = 1 По КолСимволов Цикл
Символ = Сред(ТекстИсходник, НомерСимвола, 1);
Если Символ = Символ(10) Тогда
Если КонтентТекущейСтроки = "" Тогда
// Закрываем параграф
ТекстHtml = ТекстHtml + МассивТегов[0];
МассивТегов.Удалить(0);
Сообщить("Есть такая строка");
// Открываем новый параграф
ТекстHtml = ТекстHtml + "<p>";
МассивТегов.Добавить("</p>");
ИначеЕсли КолПробеловПодряд = 2 Тогда
ТекстHtml = ТекстHtml + "</br>";
КолПробеловПодряд = 0;
КонецЕсли;
// Обнуляем строку
КонтентТекущейСтроки = "";
ИначеЕсли КодСимвола(Символ) = 42 Тогда
// Если тег <em> был открыт закрываем его
Если МассивТегов[0] = "<em>" Тогда
ТекстHtml = ТекстHtml + "</em>";
МассивТегов.Удалить(0);
Иначе
ТекстHtml = ТекстHtml + "<em>";
МассивТегов.Вставить(0, "<em>");
КонецЕсли;
Иначе
Если КодСимвола(Символ) = 32 Тогда
КолПробеловПодряд = КолПробеловПодряд + 1;
Иначе
КолПробеловПодряд = 0;
КонецЕсли;
ТекстHtml = ТекстHtml + Символ;
КонтентТекущейСтроки = КонтентТекущейСтроки + Символ;
КонецЕсли;
ПредыдущийСимвол = Символ;
КонецЦикла;
ТекстHtml = ТекстHtml + МассивТегов[0];
МассивТегов.Удалить(0);
КонецПроцедуры
Процедура ВыделитьТекстВПредложении(Текст, НачальнаяПозицияПоиска = 0)
ДлинаСтроки = СтрДлина(Текст);
ПозицияСимволаВыделения = Найти(Текст, "**");
ПозицияБлизлежащегоСимвола = ?(НачальнаяПозицияПоиска = 0, ПозицияСимволаВыделения + 2, ПозицияСимволаВыделения - 1);
БлизЛежащийСимвол = Сред(Текст, ПозицияБлизлежащегоСимвола, 1);
// Проверяем что после начала выделения не идет пробел
Если Не БлизЛежащийСимвол = " " Тогда
Если НачальнаяПозицияПоиска = 0 Тогда
ВыделитьТекстВПредложении(Текст, );
Иначе
КонецЕсли;
Иначе
КонецЕсли;
КонецПроцедуры
ТекстИсходник = "**Выделение текста** не выделенный текст";
МассивТегов = Новый Массив();
// Искустенно добавляе конец строки
ТекстИсходник = ТекстИсходник + Символ(32);
// Делим текст на строки
СтрокиТекста = СтрРазделить(ТекстИсходник, Символ(32));
Для каждого СтрокаТекста Из СтрокиТекста Цикл
ВыделитьТекстВПредложении(СтрокаТекста);
КонецЦикла;