Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi byte in memorystream einfügen - wie am einfachsten ? (https://www.delphipraxis.net/100251-byte-memorystream-einfuegen-wie-am-einfachsten.html)

soulies 25. Sep 2007 08:30


byte in memorystream einfügen - wie am einfachsten ?
 
hi habe folgendes 'problem':

ich will an ein memorystream ein byte 'anhängen'

dazu hatte ich mir überlegt: [ausschnitt]
Delphi-Quellcode:
myStream := TMemoryStream.Create;
myStream.LoadFromFile(eine Datei);
myStream.Position := myStream.Size-1;
myStream.Write(Byte,1);
aber damit verändere ich nur das letzte byte ...


wo liegt mein denkfehler ?

Klaus01 25. Sep 2007 08:37

Re: byte in memorystream einfügen - wie am einfachsten ?
 
Guten Morgen,

mit
Delphi-Quellcode:
myStream.size := myStream.size +1
die Größe des Streams erweitern und dann wie gehabt das letzte Byte verändern.

Grüße
Klaus

Muetze1 25. Sep 2007 09:04

Re: byte in memorystream einfügen - wie am einfachsten ?
 
@Klaus01: Er will das letzte Byte verändern und nicht ein neues hinzufügen...

@soulies: Den geänderten Stream auch wieder zu speichern? Bisher lädst du ihn in den Speicher und veränderst ihn. Sollte es vielleicht anstatt TMemoryStream TFileStream heissen?

Klaus01 25. Sep 2007 09:07

Re: byte in memorystream einfügen - wie am einfachsten ?
 
@Muetze1:
Ich habe dieses gelesen:
Zitat:

habe folgendes 'problem':

ich will an ein memorystream ein byte 'anhängen'
und das sieht nach anhängen/erweitern aus.

Grüße
Klaus

Muetze1 25. Sep 2007 09:10

Re: byte in memorystream einfügen - wie am einfachsten ?
 
Ok, das habe ich wiederrum irgendwie überlesen. Ok, damit ist es nicht eindeutig was er nun machen will.

@soulies: Wenn du wirklich anhängen willst, dann setze die Position nicht auf ein Byte vor dem Ende der Datei sondern auf das Ende der Datei und schreibe dann dein Byte. Dein bisheriger Code überschreibt immer das letzte Byte im Stream.

Die Grösse muss nicht zuvor vergrössert werden.

Tyrael Y. 25. Sep 2007 09:18

Re: byte in memorystream einfügen - wie am einfachsten ?
 
Du darfst die Position nicht zurücksetzen.
Du stehst nach dem LoadFromFile schon an der letzten Position.
Daher brauchst du jetzt nur noch zu schreiben und das Byte wird angehängt.

Delphi-Quellcode:
myStream := TMemoryStream.Create;
myStream.LoadFromFile(eine Datei);
//myStream.Position := myStream.Size-1;
myStream.Write(Byte,1);

soulies 25. Sep 2007 09:25

Re: byte in memorystream einfügen - wie am einfachsten ?
 
danke für die schnellen und hilfreichen antworten

cya


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz