Я имел ввиду пример на 1С, если бы пришлось писать эту задачу на 1С, т.е. простейший случай, без учета в начале строки пробелов:
Код:
Перем Текст
Текст = СтрЗаменить(Текст,Символы.ПС,Символы.ПС + "|")
более сложный случай переведенный в javascript в снегопате :
Код:
SelfScript.Self['macrosУстановить символ | в строке'] = function() {
var w = GetTextWindow(); //Получим активное текстовое окно
if (!w) return false;
// Проверем есть ли выделенный текс, если нет, то выделим текущую строку , в результате обработаем выделенный текст и вернем на место.
var selText = w.GetSelectedText();
if (selText.length==0) {
var pos = w.getCaretPos();
w.setSelection(pos.beginRow, 1, pos.beginRow, 1 + w.line(pos.beginRow).length);
var text = w.GetSelectedText();
} else {
var text = selText;
}
w.SetSelectedText(setSymbolInBeginnLine(text, "| "));
}
function setSymbolInBeginnLine(text, symbol){
var result = "";
var Lines = text.split('\n');
if (Lines.length == 0){
result = result+text.replace(/^\s*/, "$&"+""+symbol+"");
}
for (var i=0; i<Lines.length; i++){
var str = Lines[i];
if (str.indexOf(symbol) == -1)
str = str.replace(/^\s*/, "$&"+""+symbol+"");
result = result+str+(((Lines.length-1)==i)?"":"\n");
}
return result
}
Я хотел, увидеть функцию setSymbolInBeginnLine на 1С, дабы быстренько ее портировать.
upd.: залил
4bc885e944 попробуйте.