You've already forked SmartConfigurator
mirror of
https://github.com/ret-Phoenix/SmartConfigurator.git
synced 2026-06-16 00:57:28 +02:00
109 lines
4.9 KiB
Plaintext
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");
|
|
|
|
//Выполнить(МассивПарамеров); |