複数行文字列; ヘッダ行の削除

複数行文字列; ヘッダ行の削除 (Multiline String; Delete Header Lines)

複数行文字列の先頭行を削除します。CSVテキストやTSVテキストのヘッダー削除などで利用できます。なお、文字列データの末尾や先頭の空白文字や改行文字は予め削除します。また、設定された削除行数が文字列データの行数を超える場合、空文字列を返します。

2019-07-20 (C) Questetra, Inc. (MIT License)
https://support.questetra.com/ja/addons/multiline-string-delete-header-lines/

Configs
  • A: 複数行テキストが格納されている文字列型データ項目を選択してください *
  • B: 削除するヘッダ行数をセットしてください (例 “1”) *
  • 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 delNum  = configs.get( "conf_DelNum" )  + ""; // config required
const dataIdC = configs.get( "conf_DataIdC" ) + ""; // config required
const intDelNum  = parseInt( delNum );
// Design-time Config Format Check
if ( isNaN( intDelNum )){
  throw new Error( "\n AutomatedTask UnexpectedConfigError:" +
                   " Config DelNum is not an integer \n" );
}


//// == 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 ) + "").trim();
if( inputText === "" ){
  throw new Error( "\n AutomatedTask UnexpectedStringError:" +
                   " String {A} is empty \n" );
}


//// == Calculating / 演算 ==
let   outputText = "";
const arrInputText = inputText.split("\n");
engine.log( " AutomatedTask MultilineString:" + 
            " String {A}, number of lines " + arrInputText.length );
if( arrInputText.length < intDelNum ){
  engine.log( " AutomatedTask StringWarning:" +
    " String {A}, number of lines is smaller than DelNum \n" );
}else{
  for (let i = intDelNum; i < arrInputText.length; i++){
    outputText += arrInputText[i];
    if( i !== arrInputText.length - 1 ){
      outputText += "\n";
    }
  }
}


//// == Data Updating / ワークフローデータへの代入 ==
engine.setDataByNumber( dataIdC, outputText );


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

Download

Capture

See also

コメントを残す

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

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