![]() |
Eine über vst.savetofile gespeicherte Datei mit weiteren Infos ergänzen
Morgen zusammen,
habe folgendes Problem, bei dem ich nicht weiterkomme: Ich speichere via vst.savetofile und vst.savenode/loadnode erfolgreich die Daten eines VirtualStringTrees. Neben den vst-Daten möchte ich aber noch 2 weitere Strings idealiter in die gleiche Datei speichern. Ich vermute, dass das irgendwie via Streams funktionieren könnte, aber ich habe keine Ahnung, wie... Hat jemand einen Ansatz für mich? Danke und schöne Grüße, frieder |
AW: Eine über vst.savetofile gespeicherte Datei mit weiteren Infos ergänzen
In den Stammtisch Videos bzw. in deren Demos hab ich das Streaming gezeigt.
![]() Videos: ![]() |
AW: Eine über vst.savetofile gespeicherte Datei mit weiteren Infos ergänzen
Ich habe den Link jetzt nicht angeschaut, aber eigentlich ist es einfach:
Du kannst einfach einen FileStream selbst erstellen und vst.SaveToStream benutzen. Vor den VST-Daten solltest du die eigenen speichern und beim Laden auch wieder auslesen. Da dann die Position nach diesen Daten steht, werden die VST-Daten einfach normal ab dieser Position gelesen und geschrieben. |
AW: Eine über vst.savetofile gespeicherte Datei mit weiteren Infos ergänzen
Danke für die Hinweise. Die Videos sind leider nicht mehr on.
Das mit vst.savetostream habe ich zuvor schon mal versucht, aber da hatte es einfach nicht geklappt. Jetzt hats geklappt! Falls es mal ein weiterer Anfänger braucht: :-D
Delphi-Quellcode:
//vst + weiteren String in Stream speichern
procedure TForm1.Button8Click(Sender: TObject); var zusatzStr: string; stream: tstream; len: integer; begin savedlg.execute; if fileexists(savedlg2.FileName) then if messagedlg('Die Datei existiert bereits. Überschreiben?', mterror, [mbyes, mbno], 0) = mrno then exit; stream:= TFileStream.Create(savedlg2.filename, fmCreate); try zusatzStr:= edit1.text; Len := Length(zusatzStr); Stream.write(Len, SizeOf(Len)); Stream.write(PChar(zusatzStr)^, Len); vst.SaveToStream(stream); finally stream.free; end; end; //vst + weiteren String laden procedure TForm1.Button9Click(Sender: TObject); var zusatzStr: string; stream: TStream; len: integer; begin if opendlg.execute = false then exit; if not fileexists(opendlg.FileName) then begin messagedlg('Datei nicht gefunden. Vorgang abgebrochen.', mterror, [mbok], 0); exit; end; stream:= TFileStream.Create(opendlg.FileName, fmOpenRead); try Stream.read(Len, SizeOf(Len)); SetLength(zusatzStr, Len); Stream.read(PChar(zusatzStr)^, Len); edit1.text:= zusatzStr; vst.LoadFromStream(Stream); finally Stream.free; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06: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