Ok, ik ben iets verder gekomen, maar ben tegen een nieuw probleem aangelopen...
De ISO 8859-15 werd gebruikt omdat hierin eurotekens worden ondersteunt, in de ISO 8859-1 is dit niet het geval... Maar ISO 8859-15 werd dus niet herkent... Maar ik kwam erachter dat de UTF-8 encoding ook vrijwel alle karakters ook wel ondersteunt, inclusief het euroteken... Dus gebruik ik nu de UTF-8 i.p.v. de ISO 8859-15, deze wordt wel herkent...
Maar nu het volgende:
Als input voor m'n progamma heb ik nu een XML bestand die gebruik maakt van UTF-8 encoding, maar dit XML bestand kan wel een paar honderd mb groot zijn... Wat doe ik dus eerst: Ik splits het bestand op met SAX en lees vervolgens de opgesplitste bestanden in met DOM...
Dit opsplitsen gaat als volgt: SAX herkent een tag, deze wordt naar een listbox geschreven, SAX herkent de inhoud van de tag, deze wordt ook naar een listbox geschreven, SAX herkent het einde van de tag, deze wordt ook naar de listbox geschreven en zo gaat het nog wel even door... Net zolang hij een bepaalde tag 100 keer is tegengekomen... Op dit moment wordt de inhoud van de listbox met de saveToFile functie weggeschreven, wordt de listbox leeg gemaakt en wordt begonnen met het tweede bestand... Deze wordt ook weggeschreven enz...
Vervolgens worden de opgesplitste bestanden een voor een met de TXMLDocument component ingelezen... Maar omdat de opgesplitste bestanden zijn weggeschreven vanuit de listbox met saveToFile voldoet het opgesplitste bestand niet meer aan de originele encoding: in het opgesplitste bestand staan bijvoorbeeld diacrieten (een e met trema enz)... Bij het inlezen van het opgesplitste bestand met de TXMLDocument struikelt Delphi hierover... En logisch natuurlijk...
Maar hoe kan ik het mogelijk maken de inhoud van de listbox volgens een bepaalde encoding weg te schrijven??? Of is dit niet mogelijk??? Of moet ik i.p.v. een listbox te vullen een TXMLDocument component vullen en de inhoud hiervan wegschrijven om later weer in te lezen???
Bookmarks