Forum: Neuen Beitrag zur Code-Library hinzufügen
Delphi
by flow4.2,
9. Apr 2010
Achja...
Ich habe noch nie mit Class Helper gearbeitet, aber eigentlich müsste das doch so aussehen:
(also es funktioniert so auf jeden Fall :-D )
type
TStreamHelper = class helper for TStream
public
procedure InsertData(const Len: Int64; Insert: TStream = nil);
procedure RemoveData(const Len: Int64; Removed: TStream = nil);
Forum: Neuen Beitrag zur Code-Library hinzufügen
Delphi
by flow4.2,
9. Apr 2010
So, hab jetzt mal Read und Write durch ReadBuffer und WriteBuffer ersetzt und die optionalen Parameter hinzugefügt
Ähm ich verstehe nicht ganz warum du die Procedure überlädst...
Ist das nur um einen Pointer übergeben zu können?
Da könnte man doch auch einfach folgendes aufrufen:
InsertData(BeispielStream, BeispielPos, BeispielLen, BeispielPointer as TStream)
Forum: Neuen Beitrag zur Code-Library hinzufügen
Delphi
by flow4.2,
9. Apr 2010
@SirThornberry
Es wird jetzt TStream verwendet statt TFileStream...
Forum: Neuen Beitrag zur Code-Library hinzufügen
Delphi
by flow4.2,
9. Apr 2010
Hallo p80286!
Naja, versuche doch mal in einen FileStream in der Mitte etwas einzufügen...dann überschreibst du natürlich Daten die dahinter kommen!
Um das zu vermeiden vergrößerst du die Datei mit der Funktion ExtendFile direkt vorher, wobei eine Lücke genau an der Stelle erzeugt wird, an der du Daten einfügen willst.
Beispiel:
Du hast eine Datei (ich nehm jetzt mal ne Textdatei) in...
Forum: Neuen Beitrag zur Code-Library hinzufügen
Delphi
by flow4.2,
9. Apr 2010
Besonders wenn man große Dateien hat und diese nicht in den Arbeitsspeicher laden kann (will, darf, muss...) ist es nicht ohne weiteres möglich Daten an einer beliebigen Stelle der Datei einzufügen (bzw. zu löschen)...
InsertData fügt Daten an einer beliebigen Position in einen Stream ein
Parameter:
- Stream: Die Datei als TStream
- P: Die Position an der die Daten eingefügt werden...