It's happened... I have a new job, and some of the code is worth of Nick Hodges commentary:
It's happened... I have a new job, and some of the code is worth of Nick Hodges commentary: if Data[i] in [' ', '|'] then begin delete(result, i, 1); insert('|', result, i); Exit; end; (bonus: this is in Delphi 2010 so I found it via the "widechar reduced to byte in set expressions" warning) The good news is that because it's a vaguely recent Delphi I can start using OmniThreadLibrary again! We have threading, and threading issues, and a willingness to try OTL to avoid writing our own. Exciting!