AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

String via TStream-Property bereitstellen

Ein Thema von sundance · begonnen am 13. Aug 2010 · letzter Beitrag vom 13. Aug 2010
Antwort Antwort
Benutzerbild von sundance
sundance

Registriert seit: 9. Mai 2006
98 Beiträge
 
Delphi 7 Professional
 
#1

String via TStream-Property bereitstellen

  Alt 13. Aug 2010, 14:26
Hallo DP-Profis!

Mein Problem/Herausforderung:
In einer Klasse liegen umfangreiche Daten in Form eines Strings; daran läßt sich aus verschiedenen Gründen auch nichts ändern.
Ich möchte dem User eine TStream-Schnittstelle zum Zugriff auf diese Daten bereitstellen, um z.B. die Funktion WriteToFile zur Verfügung zu stellen.
Nun möchte ich dazu natürlich nicht den String zuerst in den Stream kopieren.
TStringStream hält ja seine Daten auch intern als String bereit.

Gäbe es da nicht die Möglichkeit, das TStringStream-Object den Datenbereich des Strings nutzen zu lassen?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: String via TStream-Property bereitstellen

  Alt 13. Aug 2010, 14:27
Schreibe den String doch in den Stream
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: String via TStream-Property bereitstellen

  Alt 13. Aug 2010, 14:30
Hallo,

Es gibt da einen TVirtualStream in meiner Stream-Unit, die sowas kann.

Alternativ gibts auch noch eine Unit von himitsu, mit einer Klasse die soweit ich weiß quasi das gleiche macht wie TVirtualStream: Virtual Memory Stream
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von sundance
sundance

Registriert seit: 9. Mai 2006
98 Beiträge
 
Delphi 7 Professional
 
#4

AW: String via TStream-Property bereitstellen

  Alt 13. Aug 2010, 15:06
@mkinzler:
Dann hätte ich die Daten ja zweimal im Speicher (einmal im String und einmal im Stream) und das würde ich ja gerade gerne vermeiden...

@Neutral General:
Ich werde mir den TVirtualStream mal genauer anschauen.
Aber wenn das Datenobjekt (bei mir der AnsiString) vom eigentlichen Streamobjekt getrennt ist (und man über die Read- und Writemethoden des Streams) auf das Datenobjekt zugreifen kann, wäre das perfekt!

Vielen Dank für den Input erstmal...
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: String via TStream-Property bereitstellen

  Alt 13. Aug 2010, 15:13
Aber wenn das Datenobjekt (bei mir der AnsiString) vom eigentlichen Streamobjekt getrennt ist (und man über die Read- und Writemethoden des Streams) auf das Datenobjekt zugreifen kann, wäre das perfekt!
Jo, genau dafür ist der TVirtualStream ja da

Kannst ja ggf. vom TVirtualStream ableiten und dir nen TVirtualStingStream bauen oder so. Müsste sicherlich machbar sein.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:20 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