Ich hab vor kurzem auch ein solche Funktion geschrieben, und habe daher ein paar Anmerkungen:
Anstelle für den Titel den Dateinamen zu schreiben, ist es in der Regel üblich, dafür das Format "Artist - Titel" zu wählen. Wenn man im Rahmen eines mp3-Players diese Funktion benutzen möchte, und sowieso die ID3-Tags besorgt, kann man das da verwenden.
Außerdem gibts noch
Dauer := Ini.ReadInteger('playlist','Length'+IntToStr(i),0);
für die Länge des einzelnen Liedes - könnte man dann auch einbauen.
Das geht natürlich nur, wenn man diese Daten schon hat, oder eine geeignete Struktur in seinem Programm nutzt. Aus der übergebenen Stringlist müsste man dann eher eine Objectlist machen, deren Objekte die einzelnen Info-Felder besitzen.
Weswegen ich das hier aber hauptsächlich schreibe ist, dass hier die relativen Pfade fehlen
In einer *.pls gibt es nämlich durchaus die Möglichkeit, die Pfade relativ zu speichern. Das sollte da auf jeden Fall mit rein.
Die Funktionen ExpandFilename und ExtractRelativePath sind da recht hilfreich