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 @@ Файл = Новый Файл(ПутьКФайлу); - ЗаписьТекста = Новый ЗаписьТекста(ПутьКФайлу); - ЗаписьТекста.Записать(Текст); - ЗаписьТекста.Закрыть(); + ФайловыеОперации.ЗаписатьТекстФайла(ПутьКФайлу, Текст); Возврат Файл;