1
0
mirror of https://github.com/ret-Phoenix/SmartConfigurator.git synced 2026-06-16 00:57:28 +02:00
Files
SmartConfigurator/scripts/format.os
T
2017-06-15 00:56:15 +03:00

109 lines
4.9 KiB
Plaintext

Перем Обмен;
Функция УбратьЛишниеПробелыСправа(Данные)
Регулярка = новый РегулярноеВыражение("[ \t]+\r*\n");
Возврат Регулярка.Заменить(Данные, Символы.ПС);
КонецФункции
Функция ФайлУбратьЛишниеПробелыСправа(ИмяФайла)
Данные = Обмен.ПолучитьТекстИзФайла(ИмяФайла);
Данные = УбратьЛишниеПробелыСправа(Данные);
возврат Данные;
КонецФункции
Функция ВыравнитьПоЗначению(ИмяФайла,ЗначениеВыравнивания)
Источник = ИмяФайла;
Данные = "";
ПозицияРавно = 0;
МассивСтрок = Новый Массив;
Текст = Обмен.ПолучитьТекстИзФайла(Источник);
СтрокиМодуля = СтрРазделить(Текст, Символы.ПС, Истина);
Для каждого Стр Из СтрокиМодуля Цикл
Если Лев(СокрЛП(Стр),2) = "//" Тогда
МассивСтрок.Добавить(Стр);
Иначе
ТекПозицияРавно = Найти(Стр, ЗначениеВыравнивания);
ПозицияРавно = Макс(ПозицияРавно, ТекПозицияРавно);
МассивСтрок.Добавить(Стр);
КонецЕсли
КонецЦикла;
Для каждого стр из МассивСтрок цикл
Если СокрЛП(Стр) = "" Тогда
Данные = Данные + ?(Данные = "", "", Символы.ПС);
Продолжить;
КонецЕсли;
ТекПозицияРавно = Найти(Стр, ЗначениеВыравнивания);
Разница = ПозицияРавно - ТекПозицияРавно;
Пробелы = "";
для А = 0 по Разница цикл
Пробелы = Пробелы + " ";
конеццикла;
НоваяСтр = Сред(Стр, 1, ТекПозицияРавно-1) + Пробелы + Сред(Стр, ТекПозицияРавно);
Данные = Данные + ?(Данные = "", "", Символы.ПС) + НоваяСтр;
конеццикла;
Возврат (УбратьЛишниеПробелыСправа(Данные)); // + ?(Прав(Данные,1)=Символы.ПС,"",Символы.ПС);
КонецФункции
Функция ВыравнитьПоВведеномуСимволу(ИмяФайла)
Стр = Обмен.ВвестиЗначение("");
Если СокрЛП(Стр) = "" Тогда
возврат "";
Иначе
возврат ВыравнитьПоЗначению(ИмяФайла,Стр);
КонецЕсли;
КонецФункции
Процедура Выполнить(Параметры)
ИмяФайла = "tmp\module.txt";
Если Параметры.Количество() > 1 Тогда
ИмяФайла = Параметры[1];
КонецЕсли;
Приемник = ИмяФайла;
Если Параметры.Количество() > 2 Тогда
Приемник = Параметры[2];
КонецЕсли;
Если Параметры.Количество() > 0 Тогда
ВариантОбработки = Параметры[0];
Результат = "";
Если ВариантОбработки = "align-equal-sign" Тогда
Результат = ВыравнитьПоЗначению(ИмяФайла,"=");
ИначеЕсли ВариантОбработки = "align-first-comma" Тогда
Результат = ВыравнитьПоЗначению(ИмяФайла,",");
ИначеЕсли ВариантОбработки = "align-user-symbol" Тогда
Результат = ВыравнитьПоВведеномуСимволу(ИмяФайла);
ИначеЕсли ВариантОбработки = "rtrim" Тогда
Результат = ФайлУбратьЛишниеПробелыСправа(ИмяФайла);
КонецЕсли;
Обмен.ЗаписатьРезультатВФайл(Приемник, Результат);
КонецЕсли;
КонецПроцедуры
Обмен = ЗагрузитьСценарий("scripts\Обмен.os");
Выполнить(АргументыКоманднойСтроки);
//МассивПарамеров = новый Массив;
//МассивПарамеров.Добавить("align-equal-sign");
////МассивПарамеров.Добавить("c:\work\portable\v8CfgAddsAhk\tmp\module.txt");
////МассивПарамеров.Добавить("c:\work\portable\v8CfgAddsAhk\tmp\new.module.txt");
//Выполнить(МассивПарамеров);