Ich hab mal sowas Ähnliches gemacht, mit Pipe-Symbol als Type | Text Trenner, das scheint mir dafür am natürlichsten geeignet zu sein ( persönliche Meinung )
Wenn man solche unüblichen Trenner verwendet, kann man das zumindest relativ leicht, z.B. mit String.Split, wieder extrahieren.
Also in etwa so:
Delphi-Quellcode:
var
LSt : String;
begin
// Typ Beschreibung
// 1 = String
// 2 = Integer
LStr := '1|My Text'; // Der Typ ist ein String
LStr := '2|12345'; // Der Typ ist ein Integer