AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Daten an Datei anhängen

Ein Thema von svenwel.de · begonnen am 25. Mai 2005 · letzter Beitrag vom 26. Mai 2005
 
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Daten an Datei anhängen

  Alt 25. Mai 2005, 21:08
Schreib die Daten ans Ende, dahinter die Länge und dann noch eine Kennung, das Daten angehängt wurden.
Delphi-Quellcode:
Function GetAppendixInfo (aFile : TString; Var aSize : Integer) : Boolean;
// Liefert True und die Länge des Anhängsels, oder False, wenn keins da ist.
Begin
  aFile.Seek (4, soFromEnd);
  aFile.ReadInteger (aValue);
  if aValue <> ccMyPostamble Then
    Result := False
  else begin
    Result := True;
    aFile.Seek (8, soFromEnd);
    aFile.ReadInteger (aSize);
    End
End;
    
Procedure AppendData (aFile, aData : TStream);
Begin
  If GetAppendixInfo (aFile, aSizeOfOldData) Then
    aFile.Seek (aSizeOfOldData, soFromEnd)
  Else
    aFile.Seek (0, soFromEnd);
  aFile.Copy (aData, aData.Size);
  aFile.WriteInteger (aData.Size + 8); // Daten + 2*Integer
  aFile.WriteInteger (ccMyPostamble);
  aFile.Truncate;
End;

Procedure ReadAppendix (aFile, aData : TStream);
Begin
  If not GetAppendixInfo (aFile, aSizeOfData) Then
    Raise Exception.Create ('Da is nix');
  aFile.Seek (aSizeOfData, soFromEnd); // aSizeOfData ist um 8 bytes grösser (wg Länge und postamble)
  aData.Copy (aFile, aSizeOfData - 8);
End;
Das ist Pseudocode, es kann also sein, das einige Methoden nicht existieren, aber der Sinn ist klar:
Wenn ich Daten hinten dran hänge, dann schreibe ich die Daten, dann die Länge, dann eine Kennung
Wenn ich Daten lesen will, dann gucke ich erst, ob hinten die Kennung dran ist. Wenn ja, lese ich die 4 bytes davor (die Länge) und dann die Daten.
Mit ein bisserl Gehirnschmalz kannst Du mehrere Blöcke hinten dran hängen.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  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 18:19 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