コンバータ (テキストファイル to 文字型データ)

コンバータ (テキストファイル to 文字型データ)

Converter (Text File to String type data)

この工程は、文字型データ項目の値を、ファイル型データ項目に格納されているテキストファイルの内容で、上書きします。

Auto Step icon
Basic Configs
工程名
メモ
Configs for this Auto Step
File_DataId
C1: 対象のテキストファイルが格納されているデータ項目 *
conf_ReadFileCharset
C2: Content-Type で charset が指定されていれば、その文字コードを優先させる
conf_CharacterEncoding
C3: 読み込む際の文字コード(未設定の場合、UTF-8)
String_DataId
C4: テキストを保存するデータ項目 *

Capture

See Also

Script (click to open)
  • 次のスクリプトが記述されている XML ファイルをダウンロードできます
    • converter-textfile-to-string.xml (C) Questetra, Inc. (MIT License)
    • Professional のワークフロー基盤では、ファイル内容を改変しオリジナルのアドオン自動工程として活用できます


main();
function main() {
    //// == Config Retrieving / 工程コンフィグの参照 ==
    const textFileDataNum = configs.get("File_DataId");
    const stringDataNum = configs.get("String_DataId");
    const readFileCharset = configs.getObject("conf_ReadFileCharset");
    const characterEncoding = configs.get("conf_CharacterEncoding");

    //// == Data Retrieving / ワークフローデータの参照 ==
    const myFiles = engine.findDataByNumber(textFileDataNum);
    // java.util.ArrayList

    // ファイル型データ項目にファイルが1つも添付されていない場合、文字型データ項目にnull をセット
    if (myFiles === null) {
        engine.setDataByNumber(stringDataNum, null);
        return;
    }

    // ファイル型データ項目に複数添付されている場合、エラー
    if (myFiles.size() > 1) {
        throw new Error("Attachment of multiple files can not be supported.");
    }

    // ファイル型データ項目にファイルが1つ添付されている場合
    //// == Determine Charset / charset を決める ==
    const charset = determineCharset(myFiles.get(0), readFileCharset, characterEncoding);
    
    //// == Data Updating / ワークフローデータへの代入 ==
    updateData(stringDataNum, myFiles, charset);
}

/**
 * ファイルの内容を文字型データ項目に上書き出力
 * @param {String} stringDataNum 保存先文字型データ項目の番号
 * @param {java.util.ArrayList<QfileView>} myFiles ファイル型データの配列
 * @param {String} charset 文字コード
 */
function updateData(stringDataNum, myFiles, charset) {
    let myFileText = "";
    fileRepository.readFile(myFiles.get(0), charset, function (line) {
        myFileText += line + "\n";
    });

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

/**
 * 文字コードを決定する
 * @param {QfileView} myFile ファイル型データ項目
 * @param {boolean} readFileCharset Content-Type のcharset で読み込むか
 * @param {String} characterEncoding 読み込む際の文字コード
 * @return {String} charset 文字コード
 */
function determineCharset(myFile, readFileCharset, characterEncoding) {
    const charset = myFile.getCharset();
    if (readFileCharset === true && charset !== null) {
        return charset;
    }
    if (characterEncoding === null || characterEncoding === "") {
        return 'UTF-8';
    }
    return characterEncoding;
}

Questetra Supportをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

上部へスクロール