1+ // КаталогСправки задан как "C:\444". Разместите там каталог OneScriptFormsru с файлами справки или укажите свой.
2+ // КаталогБиблиотеки задан как "C:\444\111\OneScriptForms\OneScriptForms\bin\Debug". Разместите там файл библиотеки OneScriptForms.dll или укажите свой.
3+ // Продолжительность примерно 20 минут.
4+ Перем Ф , ИмяВременногоФайла , Таймер , ПолеВвода1 , Форма1 , Сч1 , Сч2 , Сч3 , Сч4 , Сч5 , Сч6 ;
5+ Перем ТекстТеста , СтрКода0 , СтрСозданияОбъекта , СтрСозданияОбъекта2 , СписокИменПараметров , ФормаNotifyIcon ;
6+ Перем СписокОшибок , КаталогСправки , КаталогБиблиотеки ;
7+
8+ Функция РазобратьСтроку (Строка , Разделитель )
9+ Стр = СтрЗаменить (Строка, Разделитель, Символы.ПС);
10+ М = Новый Массив;
11+ Если ПустаяСтрока (Стр) Тогда
12+ Возврат М;
13+ КонецЕсли ;
14+ Для Ч = 1 По СтрЧислоСтрок (Стр) Цикл
15+ М.Добавить(СтрПолучитьСтроку (Стр, Ч));
16+ КонецЦикла ;
17+ Возврат М;
18+ КонецФункции
19+
20+ Функция СтрНайтиМежду (СтрПараметр , Фрагмент1 = Неопределено , Фрагмент2 = Неопределено , ИсключитьФрагменты = Истина , БезНаложения = Истина )
21+ //Стр - исходная строка
22+ //Фрагмент1 - подстрока поиска от которой ведем поиск
23+ //Фрагмент2 - подстрока поиска до которой ведем поиск
24+ //ИсключитьФрагменты - не включать Фрагмент1 и Фрагмент2 в результат
25+ //БезНаложения - в результат не будут включены участки, содержащие дугие найденные участки, удовлетворяющие переданным параметрам
26+ //функция возвращает массив строк
27+ Стр = СтрПараметр;
28+ М = Новый Массив;
29+ Если (Фрагмент1 <> Неопределено ) и (Фрагмент2 = Неопределено ) Тогда
30+ Позиция = Найти (Стр, Фрагмент1);
31+ Пока Позиция > 0 Цикл
32+ М.Добавить(? (ИсключитьФрагменты, Сред (Стр, Позиция + СтрДлина (Фрагмент1)), Сред (Стр, Позиция)));
33+ Стр = Сред (Стр, Позиция + 1 );
34+ Позиция = Найти (Стр, Фрагмент1);
35+ КонецЦикла ;
36+ ИначеЕсли (Фрагмент1 = Неопределено ) и (Фрагмент2 <> Неопределено ) Тогда
37+ Позиция = Найти (Стр, Фрагмент2);
38+ СуммаПозиций = Позиция;
39+ Пока Позиция > 0 Цикл
40+ М.Добавить(? (ИсключитьФрагменты, Сред (Стр, 1 , СуммаПозиций - 1 ), Сред (Стр, 1 , СуммаПозиций - 1 + СтрДлина (Фрагмент2))));
41+ Позиция = Найти (Сред (Стр, СуммаПозиций + 1 ), Фрагмент2);
42+ СуммаПозиций = СуммаПозиций + Позиция;
43+ КонецЦикла ;
44+ ИначеЕсли (Фрагмент1 <> Неопределено ) и (Фрагмент2 <> Неопределено ) Тогда
45+ Позиция = Найти (Стр, Фрагмент1);
46+ Пока Позиция > 0 Цикл
47+ Стр2 = ? (ИсключитьФрагменты, Сред (Стр, Позиция + СтрДлина (Фрагмент1)), Сред (Стр, Позиция));
48+ Позиция2 = Найти (Стр2, Фрагмент2);
49+ СуммаПозиций2 = Позиция2;
50+ Пока Позиция2 > 0 Цикл
51+ Если БезНаложения Тогда
52+ Если Найти (Сред (Стр2, 1 , СуммаПозиций2 - 1 ), Фрагмент2) = 0 Тогда
53+ М.Добавить("" + ? (ИсключитьФрагменты, Сред (Стр2, 1 , СуммаПозиций2 - 1 ), Сред (Стр2, 1 , СуммаПозиций2 - 1 + СтрДлина (Фрагмент2))));
54+ КонецЕсли ;
55+ Иначе
56+ М.Добавить("" + ? (ИсключитьФрагменты, Сред (Стр2, 1 , СуммаПозиций2 - 1 ), Сред (Стр2, 1 , СуммаПозиций2 - 1 + СтрДлина (Фрагмент2))));
57+ КонецЕсли ;
58+ Позиция2 = Найти (Сред (Стр2, СуммаПозиций2 + 1 ), Фрагмент2);
59+ СуммаПозиций2 = СуммаПозиций2 + Позиция2;
60+ КонецЦикла ;
61+ Стр = Сред (Стр, Позиция + 1 );
62+ Позиция = Найти (Стр, Фрагмент1);
63+ КонецЦикла ;
64+ КонецЕсли ;
65+
66+ Возврат М;
67+ КонецФункции
68+
69+ Процедура ТестированиеКодов ()
70+ ВыбранныеФайлы = НайтиФайлы (КаталогСправки + "\OSClientServerRu" , "*.html" , Истина );
71+ Для А = 0 По ВыбранныеФайлы.ВГраница() Цикл
72+ Сообщить (" (" + Ф.Математика().Окр(((ТекущаяУниверсальнаяДатаВМиллисекундах () - Таймер)/ 1000 )/ 60 , 2 ) + " мин." + " " + А + " из " + ВыбранныеФайлы.ВГраница() + ") " +
73+ ВыбранныеФайлы[А].ПолноеИмя);
74+ Если (ВыбранныеФайлы[А].ПолноеИмя = КаталогСправки + "\OneScriptFormsru\SaveFileDialog.Reset.html" ) Тогда
75+ Продолжить ;
76+ КонецЕсли ;
77+
78+ // // // Если ВыбранныеФайлы[А].Имя = "OneScriptForms.DataGridViewButtonColumn.DefaultCellStyle.html" Тогда
79+ // // // ИначеЕсли ВыбранныеФайлы[А].Имя = "OneScriptForms.DataGridViewCell.Style.html" Тогда
80+ // // // ИначеЕсли ВыбранныеФайлы[А].Имя = "OneScriptForms.DataGridViewColumn.DefaultCellStyle.html" Тогда
81+ // // // ИначеЕсли ВыбранныеФайлы[А].Имя = "OneScriptForms.DataGridViewImageColumn.DefaultCellStyle.html" Тогда
82+ // // // Иначе
83+ // // // Продолжить;
84+ // // // КонецЕсли;
85+
86+ ТекстДок = Новый ТекстовыйДокумент;
87+ ТекстДок.Прочитать(ВыбранныеФайлы[А].ПолноеИмя);
88+ Стр = ТекстДок.ПолучитьТекст();
89+ М = СтрНайтиМежду(Стр, "<details><summary>Тестовый код</summary>" , "</PRE>" , Ложь , );
90+ Если М.Количество() > 0 Тогда
91+ Для А2 = 0 По М.Количество() - 1 Цикл
92+ ТестовыйКод0 = СтрНайтиМежду(М[А2 ], "<DIV id="" cont" , "</DIV>" , Ложь , )[0 ];
93+ ТестовыйКод = СтрНайтиМежду(ТестовыйКод0, """ >" , "</DIV>" , , )[0 ];
94+ Если Не (СокрЛП (ТестовыйКод) = "" ) Тогда
95+ ТекстДокХХХ = Новый ТекстовыйДокумент;
96+
97+ // // // ИмяВременногоФайла = "C:\Users\master\AppData\Local\Temp\" + СтрЗаменить(ВыбранныеФайлы[А].Имя, ".html", "") + "-код.tmp";
98+ // // // ТекстДокХХХ.Записать(ИмяВременногоФайла);
99+
100+ ТекстДокХХХ.Прочитать(ИмяВременногоФайла);
101+ ТекстДокХХХ.УстановитьТекст(ТестовыйКод);
102+ ТекстДокХХХ.Записать(ИмяВременногоФайла);
103+ Команда1(""" C:\Program Files\OneScript\bin\oscript.exe"" " , ИмяВременногоФайла, ПолеВвода1, ВыбранныеФайлы[А].Имя);
104+ Форма1.Фокус();
105+ КонецЕсли ;
106+ КонецЦикла ;
107+ КонецЕсли ;
108+ КонецЦикла ;
109+ КонецПроцедуры //ТестированиеКодов
110+
111+ Функция Команда1 (ИмяФайла , Аргументы , Объект , ИмяФайлаСправки )
112+ ИнформацияЗапускаПроцесса1 = Ф.ИнформацияЗапускаПроцесса();
113+ ИнформацияЗапускаПроцесса1.ИмяФайла = ИмяФайла;
114+ ИнформацияЗапускаПроцесса1.Аргументы = Аргументы;
115+ ИнформацияЗапускаПроцесса1.СоздатьБезОкна = Истина ;
116+ ИнформацияЗапускаПроцесса1.ИспользоватьОболочку = Ложь ;
117+ ИнформацияЗапускаПроцесса1.СтильОкна = Ф.СтильОкнаПроцесса.Скрытое;
118+ ИнформацияЗапускаПроцесса1.ПеренаправитьСтандартныйВывод = Истина ;
119+
120+ Процесс1 = Ф.Процесс();
121+ Процесс1.НачальнаяИнформация = ИнформацияЗапускаПроцесса1;
122+ Процесс1.Начать();
123+ Если Не Процесс1.Завершен Тогда
124+ Стр1 = Процесс1.СтандартныйВывод.ПрочитатьСтроку();
125+ Пока Стр1 <> Неопределено Цикл
126+ Стр3 = "" + Стр1;
127+ Двоеточие = Прав (Стр3, 3 );
128+ Двоеточие = Лев (Двоеточие, 1 );
129+ Если (СтрНайти (Стр3, "!!!" ) > 0 ) или (СтрНайти (Стр3, "{" ) > 0 ) или (Двоеточие <> ":" ) Тогда
130+ СписокОшибок.Добавить(Стр3 + " " + ИмяФайлаСправки);
131+ КонецЕсли ;
132+ Объект.ДобавитьТекст(Стр3 + " " + ИмяФайлаСправки + Символы.ПС);
133+ Стр1 = Процесс1.СтандартныйВывод.ПрочитатьСтроку();
134+ КонецЦикла ;
135+ Иначе
136+ Объект.ДобавитьТекст("Процесс1 завершен" );
137+ КонецЕсли ;
138+ Ф.ПередатьУправление();
139+ КонецФункции
140+
141+ Таймер = ТекущаяУниверсальнаяДатаВМиллисекундах ();
142+
143+ КаталогСправки = "C:\444" ; // без слэша
144+ КаталогБиблиотеки = "C:\444\111\OneScriptClientServer\OneScriptClientServer\bin\Debug" ; // без слэша
145+ ИмяВременногоФайла = ПолучитьИмяВременногоФайла ();
146+ ТекстДокХХХ = Новый ТекстовыйДокумент;
147+ ТекстДокХХХ.Записать(ИмяВременногоФайла);
148+
149+ ПодключитьВнешнююКомпоненту ("C:\444\111\OneScriptForms\OneScriptForms\bin\Debug\OneScriptForms.dll" );
150+ Ф = Новый ФормыДляОдноСкрипта();
151+ Форма1 = Ф.Форма();
152+ Форма1.Текст = "Общий тест OneScriptClientServer.dll" ;
153+ Форма1.Ширина = 1100 ;
154+ Форма1.Высота = 600 ;
155+ Форма1.Отображать = Истина ;
156+ Форма1.Показать();
157+
158+ ПолеВвода1 = Форма1.ЭлементыУправления.Добавить(Ф.ПолеВвода());
159+ ПолеВвода1.МногострочныйРежим = Истина ;
160+ ПолеВвода1.Стыковка = Ф.СтильСтыковки.Заполнение;
161+ ПолеВвода1.ЦветФона = Ф.Цвет().Черный;
162+ ПолеВвода1.ОсновнойЦвет = Ф.Цвет().БледноЗеленый;
163+ ПолеВвода1.ПолосыПрокрутки = Ф.ПолосыПрокрутки.Обе;
164+ ПолеВвода1.ПринятиеВозврат = Истина ;
165+ ПолеВвода1.Перенос = Ложь ;
166+ ПолеВвода1.РегистрСимволов = Ф.РегистрСимволов.Стандартный;
167+
168+ СписокОшибок = Новый СписокЗначений;
169+
170+ ТестированиеКодов();
171+
172+ ПолеВвода1.ДобавитьТекст("==============================================================================================" + Символы.ПС);
173+ ПолеВвода1.ДобавитьТекст("Тест выполнен за: " + ((ТекущаяУниверсальнаяДатаВМиллисекундах ()- Таймер)/ 1000 )/ 60 + " мин." + " " + ТекущаяДата () + Символы.ПС);
174+ ПолеВвода1.ДобавитьТекст("Ошибок = " + СписокОшибок.Количество() + Символы.ПС);
175+ Для А = 0 По СписокОшибок.Количество() - 1 Цикл
176+ ПолеВвода1.ДобавитьТекст("" + СписокОшибок.Получить(А).Значение + Символы.ПС);
177+ КонецЦикла ;
178+
179+ УдалитьФайлы (ИмяВременногоФайла);
180+
181+ Ф.ЗапуститьОбработкуСобытий();
0 commit comments