Habe das bei mir mit 90 MB getestet, dauerte etwa zwei Sekunden. Aber das war 'ne SSD. Mach mal die Ticks nur um meine Methode. Die sollte deutlich unter einer Sekunde brauchen, gerade für nur 17 MB.
Man sollte beim Programmieren schon lesen, was da steht. Wenn man
Input := TMemoryStream.Create(
eingibt, erscheint automatisch die Programmierhilfe von Delphi und sagt „<Keine Parameter erwartet>“. Also ruft man die Methode ohne Parameter auf (Klammer wieder weg oder – wer’s mag – Klammer sofort schließen). Da hätten schon längst deine Alarmglocken schrillen sollen. Wenn die Methode keine Parameter erwartet, sind zwei Parameter natürlich zu viel.
Ich habe noch nie ein Buch zu Delphi gelesen. Es begann mit der Anleitung zur Programmierung eines Euro-DM-Umrechners in PC-World, wo Delphi 6
PE beilag. Rest über die Dokumentation. (Das übt zwar die Aneignung von Wissen aus der Dokumentation, aber die Code-Qualität und Umsetzung früherer Projekte ist allerdings dementsprechend schlecht, da man z.B. nicht immer weiß, welche weiteren (besseren) Möglichkeiten es noch gibt, um dasselbe Problem zu lösen.)