複数行文字列, 行数の取得 (Multiline String, Get Number of Lines)

テキストの行数を取得します。末尾の改行コードをカウントしない行数も取得可能です。

2019-10-30 (C) Questetra, Inc. (MIT License)
https://support.questetra.com/ja/addons/multiline-string-get-number-of-lines/

Configs
  • A: 複数行テキストが格納されている文字列型データ項目を選択してください *
  • B: 行数が格納される数値型データを選択してください (更新)
  • C: 末尾改行コードを無視した行数が格納される数値型データを選択してください (更新)
Script
// (c) 2019, Questetra, Inc. (the MIT License)

//////// START "main()" ////////
main();
function main(){ 


//// == Config Retrieving / 工程コンフィグの参照 ==
const dataIdA = configs.get( "conf_DataIdA" ) + ""; // config required
const dataIdB = configs.get( "conf_DataIdB" ) + ""; // config not required
const dataIdC = configs.get( "conf_DataIdC" ) + ""; // config not required


//// == Data Retrieving / ワークフローデータの参照 ==
// Run-time Data Format Check
if( engine.findDataByNumber( dataIdA ) === null ){
  throw new Error( "\n AutomatedTask UnexpectedStringError:" +
                   " String {A} is null \n" );
}
const inputText = engine.findDataByNumber( dataIdA ) + "";
const inputText2 = inputText.replace(/[\n]*$/, "");


//// == Calculating / 演算 ==
const arrInputText = inputText.split("\n");
engine.log( " AutomatedTask MultilineString:" + 
            " String {A}, number of lines " + arrInputText.length );
const arrInputText2 = inputText2.split("\n");
engine.log( " AutomatedTask MultilineString:" + 
            " String {A}, number of lines trimmed " + arrInputText2.length );


//// == Data Updating / ワークフローデータへの代入 ==
if ( dataIdB !== "" ){ 
  engine.setDataByNumber( dataIdB, new java.math.BigDecimal( arrInputText.length ) );
}
if ( dataIdC !== "" ){ 
  engine.setDataByNumber( dataIdC, new java.math.BigDecimal( arrInputText2.length ) );
}


} //////// END "main()" ////////

Download

Capture

See also

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

%d人のブロガーが「いいね」をつけました。