@tigerman33 Ja, gut, kannst in einem Stream auch die Länge speichern, aber musst du nicht. Könntest auch den Stream parsen und nach CR+LF oder eigenen Trennzeichen durchsuchen. Ganz klar ist, ein Stream behandelt die Daten nur als Bytes und damit entfällt eigentlich jeder Overhead beim Laden/Speichern (ok speichern nur bedingt, aber sehr kleiner Overhead). Aber die geladenen Daten zu interpretieren bringt dann die eigentliche Arbeit.
Nebenbei bemerkt, es ging ja auch nicht um Platz, oder? Und ein Byte pro Zeile lohnt sich bei genügend kurzen Zeilen (< 255 Zeichen), egal. Bei wirklich großen Textdateien holt man eh mehr mit einem einfachen Packer raus, als mit den Trennzeichen
Was die Algorithmen angeht, so hab ich sie auch nicht geschrieben (und auch noch nicht in den Quellcode geschaut), aber ich gehe jetzt nur davon aus, dass Delphi durchdachte Komponenten ausliefert (ok, macht eher Borland). Jedenfalls werden die Jungs dort dafür bezahlt sich mit effizienten Algorithmen zu befassen und die Grundidee ist doch, dass man gekapselte Objekte bekommt, deren konkrete Implementierung einen nicht interessieren soll. Aber wenn es einen tolleren schickeren schnelleren Algorithmus zum Suchen von Strings gibt, dann wird der wohl einfach intern geändert und dank Kapselung merke ich nur dass alles schöner toller besser läuft (anders gesagt gar nichts).