AGB  ·  Datenschutz  ·  Impressum  







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

TFileStream.Memory?

Ein Thema von Neutral General · begonnen am 2. Mai 2008 · letzter Beitrag vom 2. Mai 2008
Antwort Antwort
Benutzerbild von Neutral General
Neutral General

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

TFileStream.Memory?

  Alt 2. Mai 2008, 15:38
Hi,

Mir ist aufgefallen, dass alle von THandleStream abgeleitete Klassen(Streams) die property "Memory" nicht besitzen.. Ist das irgendwie nachrüstbar, oder geht das aufgrund der Tatsache, das die Daten eben nicht im Speicher liegen nicht?

Gruß
Neutral General
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
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: TFileStream.Memory?

  Alt 2. Mai 2008, 15:41
THandleStream arbeitet eben mit File-Handles und nicht mit MMFs. Du könntest entweder einen eigenen MMF-Stream schreiben oder die Methode LoadFromFile eines Memorystreams verwenden.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  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

Re: TFileStream.Memory?

  Alt 2. Mai 2008, 15:46
Hi,

Ja irgendwie wusste ichs ja
Also ich benutze eigentlich fast immer MemoryStreams aber in diesem Fall fänd ichs schon ganz nett, wenn die Dateien auf der Festplatte bleiben und nicht in den Speicher geladen werden würden.

Mit MMFs könnte ich beides haben oder? Dann muss ich mir wohl mal MMFs anschauen
Ist zwar theoretisch nicht sooo dringend aber kann ja auch nicht schaden sich sowas mal anzuschauen, vorallem falls ich die Dinger auch bei meinem 4-Byte-Folgen-Statistik Teil benutzen will/muss..
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 SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: TFileStream.Memory?

  Alt 2. Mai 2008, 15:54
Wenn du dich auf die Methoden von TStream beschränkst kannst du die Klasse jederzeit austauschen ohne viele Änderungen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#5

Re: TFileStream.Memory?

  Alt 2. Mai 2008, 16:37
Zitat:
aber kann ja auch nicht schaden sich sowas mal anzuschauen
http://www.delphipraxis.net/internal...=879295#879295
im Anhang sind einige Streams drin (samt Einem mit MMF)

und auch wenn sie auf Record's aufbauen, lassen sie sich bestimmt leicht in Objekte umwandeln (falls nötig)

oder Bei Google suchenmemory mapped stream [google]*memorymappedstream[/google]
http://www.vclcomponents.com/Delphi/...eams-info.html




PS: Ein Problem bei MMFs ist, daß man die Position der Datei nicht frei im RAM positionieren kann.
Genauer, man kann nicht jede beliebige Dateiposition an den Anfang des gemappten Speichersblocks legen,
drum verschiebt sich die MapPosition abhängig zur Dateiposition im RAM und auch die MAP-Größe paßt sich dynamisch an.
Zitat:
MSDN-Library durchsuchenMapViewOfFile
The combination of the high and low offsets must specify an offset within the file mapping. They must also match the memory allocation granularity of the system. That is, the offset must be a multiple of the allocation granularity. To obtain the memory allocation granularity of the system, use the GetSystemInfo function, which fills in the members of a SYSTEM_INFO structure.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 04:41 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