Just some notes: If you look at TIniFile.Create, the file is loaded into a stringlist and then parsed using FillSectionList. (This is the same for stream reading).
Problem is, FillSectionList is private, but, TMemIniFile exposed FillSectionList via SetStrings. Hence my code.
If FillSectionList was a protected virtual, then you could have just overrided that.