AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi MemoryMapped File Zugriff auf großes XML File...
Thema durchsuchen
Ansicht
Themen-Optionen

MemoryMapped File Zugriff auf großes XML File...

Offene Frage von "pertzschc"
Ein Thema von pertzschc · begonnen am 7. Okt 2009 · letzter Beitrag vom 7. Okt 2009
 
Benutzerbild von himitsu
himitsu

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

Re: MemoryMapped File Zugriff auf großes XML File...

  Alt 7. Okt 2009, 18:12
Du solltest vielleicht nochmal die Hilfe zu MSDN-Library durchsuchenCreateFileMapping durchgehn.

Die Datei wird da nicht direkt im letzen Parameter übergeben!
Öffne der Datei mit MSDN-Library durchsuchenCreateFile und übergibt CreateFileMapping im 1. Parameter das Datei-Handle.


[add]
aber ganz im Ernst ... nach dem Durchsehn der Unit LibXmlParser.pas kann ich nur eines Sagen

Es wäre einfacher den Puffer direkt zu laden (MMF ist hier garnicht nötig und viel zu umständlich),
aber es ist nahezu unmöglich dieser Komponente einen sich bewegenen Puffer unterzuschmuggeln und so die speicherbedingte Größenbegrenzung zu umgehen.

"sich bewegend" = da du den Puffer nur an bestimmten (freien) Stellen im Arbeitsspeicher ablegen kannst und somit, beim Nachladen weiterer Daten, die Zugriffszeiger (Pointer) jedesmal anpassen mußt.

Probleme:
- es gibt nicht nur einen zentralen Zeiger (sondern viele kleiner und teilweise sind das lokale Funktions-Parameter
- du hast keine richtige Kontrollmöglichkeit, um zu prüfen wo im Puffer die Funktionen im Moment wirklich sind und welche Daten nun entfernt werden können und (wichtiger) welche Daten noch nötig sind


PS: Ich hab selber Monate gebraucht, bis mein System zum Nachladen der Daten halbwegs lief und hab die ganzen Parsingfunktionen auch daraufhin ausgelegt.
Du willst hier soein System nachrüsten und das in eine Struktur, welche darauf nicht ausgelegt ist und an vielen Stellen sogar ein solches System nicht (oder nur mit größerem Aufwand) unterstützen würde.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
 


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 08:30 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