Od dłuższego czasu używam modułu XMLIni, i jest naprawdę dobry. Teraz jednak muszę przechować dane w pamięci, tak jak odbywa się to w MemIniFile. Próbowałem stworzyć własną klasę dziedziczącą po TXMLIni, jednak wymagało by to nadpisania większości procedur.
Co radzicie?
Nie korzystałem nigdy z XMLIni, ale jak rozumiem jest to proste opakowanie klasy do obslugi plików XML tak jak plików INI. Może będzie Tobie odpowiadał parser, ktory dołączyłem. Mozna operować na stworzonym obiekcie i dopiero w żądanej chwili zapisać go do pliku lub TStream. Tak samo jest z załadowaniem pliku, co można uczynić bezpośrednio z pliku lub strumienia. Chyba, że masz czas to możesz przerobić XMLIni tak aby rownież operował na TMemoryStream.
Czas mam, tylko nie wiem czy licencja na to pozwala.
Dzięki wszystkim za odpowiedź.
Jeżeli mówisz o tym TXMLINI z http://sourceforge.net/projects/txmlini/ to od którejś wersji (1.07? nie pamiętam) jest na licencji GNU LGPL - jeżeli przerobisz, to powinieneś udostępnić swoją modyfikację na takich samych warunkach. Z drugiej strony, jeśli napiszesz własną klasę, która tylko będzie dziedziczyła po TXMLINI - nie musi ona być na LGPL. Ewentualnie możesz wziąć po prostu nagłówki metod z TXMLINI i wykorzystać w swojej klasie, która będzie działać zupełnie inaczej - nagłówki są wzięte z bibliotek Borlanda.
Pierwotna wersja biblioteki i tak była licencjonowana na GPL, i było jeszcze gorzej. Gdybym ją pisał teraz z pewnością byłaby na MIT i można by z nią robić praktycznie dowolne rzeczy.
Niemniej - TXMLINI jest straszne i działa tylko przypadkiem. Jeśli masz chęć i możliwość użycia jakiegoś prawdziwego parsera XML, to do tego zachęcam.
Choć miło wiedzieć, że projekt jeszcze żyje, po tych wszystkich latach ;-)