From 129fb72aa186b411f5b3a2e3128f49652c5a2f84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=97=D0=B0=D0=B7=D1=83=D0=BB=D0=BE=D0=B2=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=90=D0=BB=D0=B5=D0=BA=D1=81?= =?UTF-8?q?=D0=B0=D0=BD=D0=B4=D1=80=D0=BE=D0=B2=D0=B8=D1=87=20=28=D0=97?= =?UTF-8?q?=D0=9A-0001393=29?= Date: Wed, 13 Mar 2024 09:52:17 +0300 Subject: [PATCH] =?UTF-8?q?ORAIS-1265:=20=D0=97=D0=B0=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=82=D1=8C=20=D0=BE=D0=B1=D1=8A=D0=B5=D0=BA=D1=82=D1=8B?= =?UTF-8?q?=20=D0=A7=D1=82=D0=B5=D0=BD=D0=B8=D0=B5=D0=A2=D0=B5=D0=BA=D1=81?= =?UTF-8?q?=D1=82=D0=B0=20=D0=B8=20=D0=97=D0=B0=D0=BF=D0=B8=D1=81=D1=8C?= =?UTF-8?q?=D0=A2=D0=B5=D0=BA=D1=81=D1=82=D0=B0=20=D0=BD=D0=B0=20=D0=BC?= =?UTF-8?q?=D0=B5=D1=82=D0=BE=D0=B4=D1=8B=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=A4=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2=D1=8B=D0=B5=D0=9E?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B0=D1=86=D0=B8=D0=B8.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Классы/НастройкиРепозитория.os | 8 ++---- src/Модули/ФайловыеОперации.os | 28 +++++++++---------- src/СценарииОбработки/ВставкаКопирайтов.os | 24 ++++------------ .../ПроверкаДублейПроцедурИФункций.os | 6 +--- .../УдалениеДублейМетаданных.os | 10 ++----- tests/ТестПроверкаСценариевОбработки.os | 9 ++---- 6 files changed, 28 insertions(+), 57 deletions(-) diff --git a/src/Классы/НастройкиРепозитория.os b/src/Классы/НастройкиРепозитория.os index 51676bb..36720d9 100644 --- a/src/Классы/НастройкиРепозитория.os +++ b/src/Классы/НастройкиРепозитория.os @@ -217,9 +217,7 @@ ПарсерJSON = Новый ПарсерJSON; ТекстКонфигурации = ПарсерJSON.ЗаписатьJSON(Конфигурация); - Запись = Новый ЗаписьТекста(АдресКонфигурационногоФайла, КодировкаТекста.UTF8NoBOM); - Запись.Записать(ТекстКонфигурации); - Запись.Закрыть(); + ФайловыеОперации.ЗаписатьТекстФайла(АдресКонфигурационногоФайла, ТекстКонфигурации); НовыйКонфиг = Ложь; @@ -260,9 +258,7 @@ Файл = Новый Файл(АдресКонфигурационногоФайла); Если Файл.Существует() Тогда - Чтение = Новый ЧтениеТекста(АдресКонфигурационногоФайла, КодировкаТекста.UTF8NoBOM); - ТекстКонфигурации = Чтение.Прочитать(); - Чтение.Закрыть(); + ТекстКонфигурации = ФайловыеОперации.ПрочитатьТекстФайла(АдресКонфигурационногоФайла); ПарсерJSON = Новый ПарсерJSON; Конфигурация = ПарсерJSON.ПрочитатьJSON(ТекстКонфигурации); diff --git a/src/Модули/ФайловыеОперации.os b/src/Модули/ФайловыеОперации.os index e4ab86d..e6a3885 100644 --- a/src/Модули/ФайловыеОперации.os +++ b/src/Модули/ФайловыеОперации.os @@ -81,31 +81,31 @@ // Перечисление - Кодировка файла // Функция ОпределитьКодировку(ПутьКФайлу) Экспорт + + Кодировка = КодировкаТекста.UTF8NoBOM; + Файл = Новый Файл(ПутьКФайлу); + Если НЕ Файл.Существует() ИЛИ НЕ Файл.ЭтоФайл() Тогда + Возврат Кодировка; + КонецЕсли; МаркерUTFBOM = СтрРазделить("239 187 191", " "); ЧтениеДанных = Новый ЧтениеДанных(ПутьКФайлу); Буфер = Новый БуферДвоичныхДанных(МаркерUTFBOM.Количество()); - ЧтениеДанных.ПрочитатьВБуферДвоичныхДанных(Буфер, , МаркерUTFBOM.Количество()); - Cч = 0; - ЕстьBOM = Истина; - + ЧтениеДанных.Закрыть(); + + Сч = 0; Для Каждого Байт ИЗ Буфер Цикл - - Если МаркерUTFBOM[Cч] <> Строка(Байт) Тогда - - ЕстьBOM = Ложь; - Прервать; - + Если МаркерUTFBOM[Сч] <> Строка(Байт) Тогда + Возврат Кодировка; КонецЕсли; - Cч = Cч + 1; - + Сч = Сч + 1; КонецЦикла; - ЧтениеДанных.Закрыть(); + Кодировка = КодировкаТекста.UTF8; - Возврат ?(ЕстьBOM, КодировкаТекста.UTF8, КодировкаТекста.UTF8NoBOM); + Возврат Кодировка; КонецФункции // ОпределитьКодировку diff --git a/src/СценарииОбработки/ВставкаКопирайтов.os b/src/СценарииОбработки/ВставкаКопирайтов.os index 91097df..bd620f0 100644 --- a/src/СценарииОбработки/ВставкаКопирайтов.os +++ b/src/СценарииОбработки/ВставкаКопирайтов.os @@ -110,9 +110,7 @@ ТекстЗамены = СтрШаблон(" %1-%2", Совпадение.Группы[1].Значение, Год(ТекущаяУниверсальнаяДата())); ТекстКопирайта = РегуляркаДатыКопирайта.Заменить(ТекстКопирайта, ТекстЗамены); - ЗаписьТекста = Новый ЗаписьТекста(ПутьКФайлуКопирайта, КодировкаТекста.UTF8NoBOM, , , Символы.ПС); - ЗаписьТекста.Записать(ТекстКопирайта); - ЗаписьТекста.Закрыть(); + ФайловыеОперации.ЗаписатьТекстФайла(ПутьКФайлуКопирайта, ТекстКопирайта); ДополнительныеПараметры.ИзмененныеКаталоги.Добавить(ПутьКФайлуКопирайта); КонецЕсли; @@ -122,13 +120,8 @@ Функция УстановитьКопирайтПриНеобходимости(ПутьКФайлуМодуля, ПутьКФайлуКопирайта) - Текст = Новый ЧтениеТекста(); - Текст.Открыть(ПутьКФайлуКопирайта, КодировкаТекста.UTF8NoBOM); - - ТекстКопирайта = Текст.Прочитать(); - ТекстКопирайта = СокрЛП(ТекстКопирайта); - Текст.Закрыть(); - + ТекстКопирайта = СокрЛП(ФайловыеОперации.ПрочитатьТекстФайла(ПутьКФайлуКопирайта)); + ТекстОшибки = ""; РегуляркаОтключитьСценарий = Новый РегулярноеВыражение(ИгнорируемыеТегиСтрокой()); @@ -141,11 +134,8 @@ НовыйТекстМодуля = ""; - Текст = Новый ЧтениеТекста(); - Текст.Открыть(ПутьКФайлуМодуля, КодировкаТекста.UTF8NoBOM); - ТекстМодуля = Текст.Прочитать(); - Текст.Закрыть(); - + ТекстМодуля = ФайловыеОперации.ПрочитатьТекстФайла(ПутьКФайлуМодуля); + Если НЕ ПустаяСтрока(ТекстМодуля) И НЕ РегуляркаОтключитьСценарий.Совпадает(ТекстМодуля) Тогда КоллекцияСовпадений = РегуляркаКопирайта.НайтиСовпадения(ТекстМодуля); @@ -180,9 +170,7 @@ Если ЗначениеЗаполнено(ТекстОшибки) Тогда - ЗаписьТекста = Новый ЗаписьТекста(ПутьКФайлуМодуля, КодировкаТекста.UTF8NoBOM, , , Символы.ПС); - ЗаписьТекста.Записать(НовыйТекстМодуля); - ЗаписьТекста.Закрыть(); + ФайловыеОперации.ЗаписатьТекстФайла(ПутьКФайлуМодуля, НовыйТекстМодуля); Возврат Истина; diff --git a/src/СценарииОбработки/ПроверкаДублейПроцедурИФункций.os b/src/СценарииОбработки/ПроверкаДублейПроцедурИФункций.os index 910b972..5a4108f 100644 --- a/src/СценарииОбработки/ПроверкаДублейПроцедурИФункций.os +++ b/src/СценарииОбработки/ПроверкаДублейПроцедурИФункций.os @@ -59,11 +59,7 @@ // Процедура ПроверитьНаДублированиеМетодов(ПутьКФайлуМодуля) - Текст = Новый ЧтениеТекста(); - Текст.Открыть(ПутьКФайлуМодуля, КодировкаТекста.UTF8NoBOM); - - ТекстМодуля = Текст.Прочитать(); - Текст.Закрыть(); + ТекстМодуля = ФайловыеОперации.ПрочитатьТекстФайла(ПутьКФайлуМодуля); ТекстОшибки = ""; diff --git a/src/СценарииОбработки/УдалениеДублейМетаданных.os b/src/СценарииОбработки/УдалениеДублейМетаданных.os index f6154d5..9d620ab 100644 --- a/src/СценарииОбработки/УдалениеДублейМетаданных.os +++ b/src/СценарииОбработки/УдалениеДублейМетаданных.os @@ -143,10 +143,7 @@ КонецФункции Функция УдалитьДублиВМетаданныхEDT(Знач ИмяФайла) - Текст = Новый ЧтениеТекста(); - Текст.Открыть(ИмяФайла, КодировкаТекста.UTF8NoBOM); - СодержимоеФайла = Текст.Прочитать(); - Текст.Закрыть(); + СодержимоеФайла = ФайловыеОперации.ПрочитатьТекстФайла(ИмяФайла); Регексп = Новый РегулярноеВыражение("(<\/languages>\s*?)([\w\W]*)(<\/mdclass\:Configuration>)"); Регексп.ИгнорироватьРегистр = Истина; @@ -210,10 +207,7 @@ КонецЕсли; СодержимоеФайла = Регексп.Заменить(СодержимоеФайла, "$1" + СокрЛП(СтрокаЗамены) + Символы.ПС + "$3"); - ЗаписьТекста = Новый ЗаписьТекста; - ЗаписьТекста.Открыть(ИмяФайла, КодировкаТекста.UTF8NoBOM); - ЗаписьТекста.Записать(СодержимоеФайла); - ЗаписьТекста.Закрыть(); + ФайловыеОперации.ЗаписатьТекстФайла(ИмяФайла, СодержимоеФайла); Возврат Истина; diff --git a/tests/ТестПроверкаСценариевОбработки.os b/tests/ТестПроверкаСценариевОбработки.os index 28d57db..94c20d2 100644 --- a/tests/ТестПроверкаСценариевОбработки.os +++ b/tests/ТестПроверкаСценариевОбработки.os @@ -121,9 +121,8 @@ НастройкиСценария = Новый Соответствие; ФайлНастроек = Новый Файл(ОбъединитьПути(ПодкаталогНастроек, ТестовыйФайл.ИмяБезРасширения + ".json")); Если ФайлНастроек.Существует() Тогда - ЧтениеНастроек = Новый ЧтениеТекста(ФайлНастроек.ПолноеИмя, КодировкаТекста.UTF8NoBOM); - НастройкиСценария = Новый ПарсерJSON.ПрочитатьJSON(ЧтениеНастроек.Прочитать()); - ЧтениеНастроек.Закрыть(); + ТекстНастроек = ФайловыеОперации.ПрочитатьТекстФайла(ФайлНастроек.ПолноеИмя); + НастройкиСценария = Новый ПарсерJSON.ПрочитатьJSON(ТекстНастроек); КонецЕсли; ДополнительныеНастройки.Настройки.Вставить(ИмяСценария, НастройкиСценария); @@ -676,9 +675,7 @@ Файл = Новый Файл(ПутьКФайлу); - ЗаписьТекста = Новый ЗаписьТекста(ПутьКФайлу); - ЗаписьТекста.Записать(Текст); - ЗаписьТекста.Закрыть(); + ФайловыеОперации.ЗаписатьТекстФайла(ПутьКФайлу, Текст); Возврат Файл;