AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Manchmal könnte man in die Tischkante beissen....

Manchmal könnte man in die Tischkante beissen....

Ein Thema von TSHObject · begonnen am 1. Sep 2024 · letzter Beitrag vom 3. Sep 2024
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.590 Beiträge
 
Delphi 12 Athens
 
#4

AW: Manchmal könnte man in die Tischkante beissen....

  Alt 1. Sep 2024, 18:48
Es gibt mehrere solcher verschachtelter Streams/Reader/Writer in Delphi.
Bei Einigen muß man aber aufpassen, da sie einen Cache bzw. Buffer nutzen.

Dieser TBinaryReader besitzt z.B. einen Cache für Char/String-Funktionen und ich weiß nicht, wie er auf sowas hier reagiert.
Wird oft für Vorschaufunktionen gemacht, oder wenn man die Länge vorher noch nicht kennt, z.B. bei Strings mit Terminator, anstatt vorangestellter Länge.

[add] Ohhh, aber du kannst Glück haben, denn was kann man da sehen?
Delphi-Quellcode:
function TBinaryReader.PeekChar: Integer;
var
  Position: Int64;
begin
  Position := FStream.Position;
  try
    Result := InternalReadChar;
  finally
    FStream.Position := Position;
  end;
end;


PS: Wenn man nur vorwärts springt und nie rückwärts, dann könnte man auch eine Skip-Funktion nutzen, bzw. "blind" die gewünschte Anzahl an Bytes lesen.
Das betrifft auch solche Streams, welche sich teilweise nicht beliebig umherschubsen lassen, wie z.B. einige Verschlüsselungs- und Komprimierungsstreams.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 1. Sep 2024 um 18:58 Uhr)
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz