sakura editor文本处理脚本

二月虫子 / 2025-01-25 / 原文

//行数を取得
var cnt = Editor.GetLineCount(0);
//Editor.MessageBox(lines);

//転記年月切り替え用
var budatStart = 9; //転記年月開始桁数
var compareBudat = "202410"; //転記年月(比較用) ★修正要★
var replaceBudat = "20241001"; //転記年月日(切替用) ★修正要★

//借貸区分切り替え用
var shkzgStart = 2; //借貸区分開始桁数

//マイナス転記フラグ切り替え用
var glNameLength = 7; //一行目G/L勘定名の桁数 ★修正要★
var xnegpStart = 50; //マイナス転記フラグ開始桁数
xnegpStart = xnegpStart - glNameLength;

var allLineStr = "";

for (var i=1; i<= cnt; i++) {

var lineStr = Editor.GetLineStr(i);

//★★★転記日切替★★★
if (lineStr.substring(budatStart, budatStart + 6) !== compareBudat) {
    lineStr = lineStr.substring(0, budatStart) + replaceBudat + lineStr.substring(budatStart + 8);
}

//★★★借貸区分切替★★★
var shkzg = lineStr.substring(shkzgStart, shkzgStart + 1);

if (shkzg == "S") {
  shkzg = "H";
} else {
  shkzg = "S";
}
lineStr = lineStr.substring(0, shkzgStart) + shkzg + lineStr.substring(shkzgStart + 1);

//★★★マイナス転記フラグ切替★★★
xnegp = lineStr.substring(xnegpStart, xnegpStart + 1);

if (xnegp == "X") {
  xnegp = " ";
} else {
  xnegp = "X"; 
}

lineStr = lineStr.substring(0, xnegpStart) + xnegp + lineStr.substring(xnegpStart + 1);

allLineStr += lineStr;

}

//内容を切り替え
Editor.SelectAll(0);
Editor.InsText(allLineStr);