TStreamWrapper-Frage
Übersicht

n-HalbleiterBetreff: TStreamWrapper-Frage |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo Leute!
Ich wollte mich Gestern mal mit Streams (und Streamwrappern und Streamfactories) auseinandersetzen. Dafür gibt es ja ein Beispiel in der Standarddokumentation (Tutorials -> BlitzMax Overview) über die Verwendung. Jedoch funktioniert das nicht. Der Code ist folgender, komplett aus der Dokumentation übernommen: BlitzMax: [AUSKLAPPEN] Strict Theoretisch sollte es ja den Text "A little example... of our cool TUpperStream!" in Großbuchstaben anzeigen, aber das tut es nicht. Das Problem liegt (so wie ich das sehe) in der nicht-Implementation von ReadLine() im Type TUpperStream. Die ReadLine()-Methode des TStreamWrappers sieht folgendermaßen aus: BlitzMax: [AUSKLAPPEN] Method ReadLine$() Man sieht: Die Anweisung wird einfach an den darunterliegenden Stream weitergegeben. Meine Schlussfolgerung: Ich muss entweder für jeden abgeleiteten StreamWrapper die ReadLine()-Methode selbst schreiben, damit sie die Read()-Methode des StreamWrappers bemüht, oder im Modul BRL.Stream die Methode ändern. An sich dürfte das ja kein Problem, aber mir stellen sich die Fragen: Wieso steht in der Dokumentation etwas so grausam nicht korrektes? Hat sich da sonst noch keiner reingelesen? Wieso muss man erst einen solchen Eingriff vornehmen, damit etwas, was eigentlich funktionieren sollte, funktioniert? P.S.: Hat jemand schonmal so eine Modifikation geschrieben, an der man sich orientieren könnte? |
||
mfg, Calvin
Maschine: Intel Core2 Duo E6750, 4GB DDR2-Ram, ATI Radeon HD4850, Win 7 x64 und Ubuntu 12.04 64-Bit Ploing! Blog "Die Seele einer jeden Ordnung ist ein großer Papierkorb." - Kurt Tucholsky (09.01.1890 - 21.12.1935) |
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist ganz klar Mark Siblys Stil. (leider)
Man merkt, dass er Dokumentationen nicht mag. (Ich mag sie auch nicht, aber ich bin wenigstens beim Schreiben von diesen gründlicher.) Wahrscheinlich hat er den StreamWrapper irgendwann einmal verändert/umgeplant gehabt und die Änderung bei der Dokumentation nicht beachtet. Eventuell bringt ein Beitrag auf blitzbasic.com ihn dazu, seine Antriebslosigkeit zu überwinden. ![]() Für Streamwrapper, welche nur TIO-Methoden verändern, sollte man eher direkt TStream erweitern und die entsprechenden Eigenschaften und Methoden, die ein "echter" Streamwrapper braucht, ergänzen. Spezielle Fragen kannst du gerne an mich stellen. ![]() mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
n-Halbleiter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So, ich hab' mich ein wenig damit auseinandergesetzt, und auch das Problem gefunden (Hier ist der Post auf BB.com). Ich weiß nicht genau, ob es nun am Modul oder an der Dokumentation liegt (Missverständnis z.B.), auf jeden Fall muss man, um das Beispiel zum Laufen zu kriegen, in der Implementation von TStreamWrapper einige Zeilen auskommentieren (alles mit Read/Write[bla], mal abgesehen von ReadBytes/WriteBytes), dann funktioniert das Beispiel, wie es soll.
Der Source des veränderten TStreamWrapper: BlitzMax: [AUSKLAPPEN] Type TStreamWrapper Extends TStream Ich hoffe, jemand kann damit etwas anfangen. ![]() |
||
mfg, Calvin
Maschine: Intel Core2 Duo E6750, 4GB DDR2-Ram, ATI Radeon HD4850, Win 7 x64 und Ubuntu 12.04 64-Bit Ploing! Blog "Die Seele einer jeden Ordnung ist ein großer Papierkorb." - Kurt Tucholsky (09.01.1890 - 21.12.1935) |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group