Il codice non è corretto, stai cercando di leggere U+D record da tutti e due i file, quando presumibilmente devi leggere U record da un file e D dall'altro.

Inoltre, quali sono le specifiche di questo merge? C'è un ordine particolare che i record devono avere nel file di output?