Versuch mal "#13#10" durch "#13+#10" zu ersetzen. Also so:
a := stringreplace(a,'|', #13 + #10,[rfReplaceAll, rfIgnoreCase]);
Ungetestet
//edit: @Toms: So, wie ich das sehe, ist das doch nur die hexadezimale Schreibweise, ansonsten gibt es jedoch keine Unterschiede. "#13#10" ist
imho 100% gleichbedeutend mit "#$D#$A"