Delphi-PRAXiS
Seite 2 von 5     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Streams - negativen Wert mit Write schreiben??? (https://www.delphipraxis.net/27643-streams-negativen-wert-mit-write-schreiben.html)

FreewareFire 13. Aug 2004 15:43

Re: Streams - negativen Wert mit Write schreiben???
 
Siehe das erste Posting - da is er, der Code!

nailor 13. Aug 2004 15:49

Re: Streams - negativen Wert mit Write schreiben???
 
und das einlesen?

FreewareFire 13. Aug 2004 15:54

Re: Streams - negativen Wert mit Write schreiben???
 
Wo sollte da ein problem auftauchen? Der Stream ist schon mit einer Datei gefüllt. Es funktioniert ja alles, nur das halt nicht. Der Stream ist also geladen und funktioniert! Nur wie kriege ich einen negativen Wert mit write geschrieben?

maximov 13. Aug 2004 16:23

Re: Streams - negativen Wert mit Write schreiben???
 
Zitat:

Zitat von FreewareFire
Wo sollte da ein problem auftauchen? Der Stream ist schon mit einer Datei gefüllt. Es funktioniert ja alles, nur das halt nicht. Der Stream ist also geladen und funktioniert! Nur wie kriege ich einen negativen Wert mit write geschrieben?

HALLO! Dem stream ist es völlig egal ob negativ oder nicht. Entscheidend ist, ob die daten genauso wieder raus kommen, wie sie reingetan wurden. Also ist das interessanteste wie, wo, was wieder rauskommt und da wollen (zu recht) den code sehen. Kann ja auch sein das du dir das einfach mit nem hex-editor anschaust und die einzelnen bytes in einen integer umrechnest, was dann rein garnix zu sagen hätte.

Also zier dich nicht :mrgreen: ...oder debugge selbst.

FreewareFire 13. Aug 2004 16:51

Re: Streams - negativen Wert mit Write schreiben???
 
Also Bitte: Ich lade die Daten so in den Stream:

Code:
MemoryStream.LoadFromFile(STV1.Path + '\' + FList.Items.Strings[FList.ItemIndex]);
aber wie gesagt, das sollte ja nix bringen oder - es handelt sich übrigens um einen TMemoryStream. Und wie die Daten geladen werden, nehme ich mal an, dürfte Hex-Dezimal sein, oder? Hilft das jetzt? Mehr mach ich halt nicht - einfach per LoadFile einlesen. Es handelt sich um eine binär Datei, also keine reine Textdatei!

MacGuyver 13. Aug 2004 16:55

Re: Streams - negativen Wert mit Write schreiben???
 
Merde! :wall:


Oben schreibst du den Small-Int mit zwei Byte in die Datei. Gut. Dann ließt du das Teil auf einmal ein. Wohin? In einen Truthan? Nein, da wird doch wohl ein Type zu Grunde liegen, oder? Der Quellcodeschnipsel ist so interessant wie Fahrstuhl fahren. Zeige bitte mehr.

Stefan

FreewareFire 13. Aug 2004 17:02

Re: Streams - negativen Wert mit Write schreiben???
 
Also nochmal:

1. Ich lade die Daten mit einem TMemoryStream!
2. Ich lade sie mit der LoadFile Funktion
3. Ich schreibe die Daten aus der SpinEdit in den Stream, vorher setzt ich per Position die Position des Zeigers in der Datei an die Stelle.

Und ich verwende keine Types oder sonstiges. Laden, schreiben mit write, mehr ist da nicht. Und mehr Code ist da einfach nicht, warum wollt ihr mehr Code? Da is eben keiner mehr :!:

MacGuyver 13. Aug 2004 17:04

Re: Streams - negativen Wert mit Write schreiben???
 
Dann zeige doch mal die Stelle, wo du lädst und in den Spin schreibst.

Stefan

FreewareFire 13. Aug 2004 17:12

Re: Streams - negativen Wert mit Write schreiben???
 
Code:
procedure TForm1.FLISTClick(Sender: TObject);
var BuildValue: smallint;
begin
try
 
  //now open the file to check the type
  MemoryStream.LoadFromFile(STV1.Path + '\' + FList.Items.Strings[FList.ItemIndex]);

  MemoryStream.Position := $1A;
  BuildValue := BC.Value * 10;
  MemoryStream.Write(BuildValue, 2);

end;
So sieht's dann eben komplett aus!

MacGuyver 13. Aug 2004 17:22

Re: Streams - negativen Wert mit Write schreiben???
 
Irgendwie peilst du die Lage nicht.

Vom Spin in die Variable vom Typen SmallInt(2 Byte). Dabei wird automatisch eine Konvertierung vollzogen. Mit Sicherheit ist im Spin ein Integer (4 Byte)
Dann speicherst du die zwei Byte auf die Platte. Gut.
Dann lädst du deinen Stream. Gut. Wohin? Was macht BC.Value? Wieso * 10? Wieso Position $1A? Kannst du nicht erst einemal einen Typen deklarieren. Dann hast du auch keine Probleme beim Laden. Solltest du nur darauf achten, daß das "Packed Record" ist, sonst braucht ein Byte auch 2 Byte Speicher.

Zeige mal mehr vom Code.

Stefan


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:42 Uhr.
Seite 2 von 5     12 34     Letzte »    

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