AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi beliebige Datei in Stream speichern
Thema durchsuchen
Ansicht
Themen-Optionen

beliebige Datei in Stream speichern

Ein Thema von Evilboyz · begonnen am 27. Jan 2003 · letzter Beitrag vom 4. Nov 2003
 
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.124 Beiträge
 
Delphi 11 Alexandria
 
#7
  Alt 28. Jan 2003, 12:05
Moin Evilboyz,

statt Byteweise zu lesen, könntest Du ja auch immer Blockweise lesen, bis nichts mehr zu lesen ist (Rückgabewert -1).

Mit dem StringOfChar wird die Buffergrösse auf den zumindest erforderlichen Platz gesetzt, und gleichzeitig auf #00 initialisiert, damit der Buffer einen definierten Inhalt hat.
Wenn es sich um grössere Dateien handelt, könnte man natürlich auch (wie bei ReceiveBuf ) Blockweise lesen, und dann je Lesevorgang die Initialisierung wiederholen, damit zumindest der Rest des Buffers (falls die Buffergrösse kein Vielfaches der zu lesenden Anzahl Byte ist) mit einem definierten Wert belegt ist.

Die #00 nehme ich, da dies ein Wert ist, der zumindest in Texten eigentlich nicht auftauchen kann (Unicode mal ausgenommen), und somit das erste auftreten einer #00 sich oft als Ende der Daten ansehen lässt (wie bei nullterminierten Strings, wie sie bei den Windows API Funktionen üblich sind).

Beim Einlesen (ob nun über TFileStream.Read, oder über ReceiveBuf) könnte das dann so aussehen:
  1. Buffer initialisieren
  2. Daten lesen (Länge = Bufferlänge)
  3. Keine Daten gelesen dann fertig
  4. Daten in gelesener Länge verarbeiten
  5. Weiter mit 1
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
 


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 22:17 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