Вы не указываете, как «это не работает», и я не изучал ваш код (похоже, вы не нашли время, чтобы сократить его до минимума, необходимого для воспроизведения вашей проблемы, поэтому TL; DR ).Возможно, вы столкнулись с проблемой Newline , учитывая платформы, о которых вы упомянули.
На платформах Microsoft новой строкой является возврат каретки (CR
, 0x0D
или \r
) с последующим переводом строки (LF
, 0x0A
или \n
).Вы ищете только LF.
(Предположительно, однажды, Дисковая операционная система MicroSoft работала на механических пишущих машинках, и оператору пришлось бы возвращать каретку в начало, прежде чем перейти к следующейлиния).