Ab Initio グラフには、行にパイプで区切られた値を持つ入力ファイルがあります。同様の DML ファイルを使用して解析します。
record
decimal("|",0, maximum_length=19, sign_reserved) v1 = NULL("");
utf8 string("|", maximum_length=10) v2 = "";
utf8 string("|", maximum_length=10) v3 = "";
utf8 string("|", maximum_length=40) v4 = "";
utf8 string("|", maximum_length=255) v5 = "";
utf8 string("\n", maximum_length=40) v6 = "";
end
後で他のデータとの等価比較で使用するために、これらすべての文字列をパイプ区切りにしたいので、v6 値を変更する必要があります。
出力DMLをこれに変更し、変換関数を空のままにして、単純な再フォーマットでそれを試みました。
record
decimal("|",0, maximum_length=19, sign_reserved) v1 = NULL("");
utf8 string("|", maximum_length=10) v2 = "";
utf8 string("|", maximum_length=10) v3 = "";
utf8 string("|", maximum_length=40) v4 = "";
utf8 string("|", maximum_length=255) v5 = "";
utf8 string("|", maximum_length=40) v6 = "";
string(1) newline = "\n";
end
ただし、これによりv6内にゴミ文字が残りました。後で、適切な文字のみが含まれるように v6 値をフィルタリングする必要がありました。この解決策はきちんとしていないようです。
このゴミがv6内に残るのを避けるために、reinterpret_as、string_concatなどを使用しようとしましたが、何もうまくいきませんでした。v6 の区切り文字を簡単に変更するにはどうすればよいですか?