I bet most of the Delphi developers used or are still using strings to hold and operate on binary data. I’ve done it, and some of my older projects still contain such code. The basic idea is to use strings as byte buffers to hold and to use string routines to perform operations on those buffers. So what is the benefit of using strings as opposed to normal dynamic arrays? In my opinion (or better said in my use case) it was speed of development. I needed to prototype some code fast and did not care about the execution speed nor about the prettiness of the solution. Strings allow you to use all the normal functions such as Pos, Copy, Delete
If you are new to Delphi 2009 or 2010 and you use strings as “binary buffers” then you most probably had some additional work porting your application to the Unicode world.