Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#3

Re: Daten mit AssignFile ändern oder anfügen

  Alt 31. Okt 2005, 12:59
Hey,
ich glaube du kannst das alles viel leichter realisieren, indem du auf AssignFile verzichtest und ein TMemoryStream-Objekt benutzt. Da hast du einen Zeiger auf Memory, was halt wirklich der Speicherbereich ist, den du möchtest. Ein TStream hat immer eine Größe (size) mit der du gleich weißt, wie groß deine Datei ist (und ist auch noch schnell).
Mein Ansatz wäre es, dass du dir ein solches TMemoryStream Objekt anlegst. Dann noch ein Array dyn. Größe, dass setzt du auf das Maximum von der reelen Dateigröße und der Größe, die eine Datei hätte wenn du deine Bytes schreibst und dann kopierst du mit CopyMememory (WindowsApi) einfach den inhalt der Datei in dieses Array.
In diesem Array änderst du die Stellen, die du ändern möchtest und schreibst das Array einfach in den Stream (den Inhalt vorher löschen oder ab Position := 0 schreiben).

Hab leider gerade kein Delphi da und kann dir nicht wirklich ein Bsp. schicken, aber vielleicht später, hoffe ist grob klar?
Sonst einfach nochmal fragen.

Gruß Der Unwissende
  Mit Zitat antworten Zitat