Чтение текстового файла с помощью SSIS с CRLF или LF

Запуск проблемы, когда я получаю текстовый файл с LF как EOL. Иногда они отправляют файл с CRLF как EOL. Кто-нибудь есть хорошие идеи о том, как я могу заставить SSIS использовать один из них как EOL?

Это очень простая операция преобразования с помощью блокнота ++, чтобы изменить его на то, что мне нужно, однако оно является ручным, и я хочу, чтобы оно было автоматическим.

Благодаря,

РЕДАКТИРОВАТЬ. Я исправил его (но не идеально), используя швейцарский файловый нож перед потоком данных.

Я во второй раз проголосовал за швейцарский файловый нож.

Чтобы интегрировать это, мне пришлось добавить задачу «Выполнение процесса»: exeproc

Тем не менее, у меня есть куча пакетов, которые запускают петли For-Every-File, поэтому мне нужен был BIML – возможно, это поможет следующей душе.

<ExecuteProcess Name="(EXE) Convert crlf for <#= tableName #>" Executable="<#= myExeFolder #>sfk.exe"> <Expressions> <Expression PropertyName="Arguments"> "crlf-to-lf " + @[User::sFullFilePath] </Expression> </Expressions> </ExecuteProcess> 

Если терминаторы строк всегда одни или другие, я бы предложил настроить 2 диспетчера соединений с файлами, один с разделителем строк «CRLF», а другой с разделителем строк «LF».

Затем создайте переменную типа boolean (что-то вроде @IsCrLf) и примените ее к вашему пакету. Сделайте первый шаг в своем SSIS-пакете Задачей скрипта, в котором вы читаете в потоке файлов, и попытаетесь выяснить, что такое терминатор линии (на основе того, что вы находите в потоке). Соответственно установите значение переменной.

Затем, после задания сценария в потоке управления, создайте 2 отдельных потока данных (по одному для каждого диспетчера соединений с файлами) и используйте параметр ограничения приоритета «Expression and Constraint» на разъемах, чтобы указать, какой поток данных использовать, в зависимости от значение переменной @IsCrLf.

Пример предлагаемого потока управления ниже.

Пример потока управления SSIS

как насчет производного столбца с операцией REPLACE после источника файла, чтобы изменить CRLF на LF?