![]() |
Re: Inhalt wird nicht gespeichert?
Zitat:
Selbst wenn das Programm hier ist:
Delphi-Quellcode:
Befindet sich in der Variable GesMenge der richtige Wert :?
FS.Write(GesMenge,sizeOF(GesMenge));
@ FAlter, Könntest du mir das genauer erläutern, was du geschrieben hast? |
Re: Inhalt wird nicht gespeichert?
Hi,
um Strings in einen Stream zu schreiben, hab ich folgenden Classhelper:
Delphi-Quellcode:
unit uclasshelpers;
interface uses Classes; type // Klassenhelfer für den TStream um Strings komfortabel lesen und schreiben zu können TStreamHelper = class helper for TStream public procedure WriteString(const aString: string); function ReadString: string; end; implementation { TStreamStringWriter } // Liest einen String aus und gibt ihn zurück function TStreamHelper.ReadString: string; var len: Integer; begin ReadBuffer(len, SizeOf(Integer)); SetString(Result, PChar(nil), len); ReadBuffer(Pointer(Result)^, len); end; // Schreibt einen String in den Stream procedure TStreamHelper.WriteString(const aString: string); var len: Integer; begin len := Length(aString); WriteBuffer(len, SizeOf(Integer)); WriteBuffer(PChar(aString)^, len); end; end. |
Re: Inhalt wird nicht gespeichert?
Ja nur ich versteh ich nicht wo mein Fehler liegt, wenn es sonst mit den anderen Elementen funktioniert? In der dat Datei steht alles richtig drin, nur dieser eine Wert des einen Edit-Feldes fehlt!?
Beim lesen findet er dann diesen Wert nicht mehr:
Delphi-Quellcode:
FS.Read(GesMenge, sizeOF(GesMenge));
|
Re: Inhalt wird nicht gespeichert?
Ist GesMenge eine Eigenschaft der Klasse? Typ?
Zitat:
Beim lesen findet er den Wert nicht mehr:
Delphi-Quellcode:
Ist ja auch logisch. Vor dem Lesen ist der String auch leer. Du musst die Länge mit in den Stream speichern. Zudem würde ich bei Strings die Länge und nicht sizeOf nehmen.
FS.Read(GesMenge, sizeOF(GesMenge));
|
Re: Inhalt wird nicht gespeichert?
GesMenge ist in der selben Klasse in der auch die Speicher-Prozedur aufgerufen wird.
|
Re: Inhalt wird nicht gespeichert?
Zitat:
Delphi-Quellcode:
procedure TAuto.InDateiSchreiben (var Fs : TFilestream);
(* -------------------------------------------------------------------- *) var i : integer; begin FS.Write(Name, sizeOF(Name)); FS.Write(Kennzeichen, sizeOF(Kennzeichen)); FS.Write(GeschGer, sizeOF(GeschGer)); FS.Write(Farbe, sizeOF(Farbe)); FS.Write(Preis, sizeOF(Preis)); FS.Write(DX, sizeOF(DX)); FS.Write(GesMenge,sizeOF(GesMenge)); //wird, wie gesagt nicht gespeichert :( |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 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