На графике 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 простым способом?