Witam... napisałem program, który korzysta z wielu plików, które są w folderach... Nie chcę jednak żeby ktoś grzebał w tych plikach, chciałbym żeby te pliki były w "zasobach pliku exe"
Czy podpowie ktoś jak to zrobić ?
http://4programmers.net/Delphi/faq/Jak_doda%C4%87_i_odczyta%C4%87_z_zasob%C3%B3w_JPEG,_GIF_
Do zasobów też się łatwo dobrać. Możesz sobie w sumie po umieszczeniu plików w zasobach jeszcze spakować program upx'em lub aspack'iem, wtedy będzie trochę trudniej.
Trochę też zależy jakiego typu pliki chcesz trzymać w exe (jpg, png, txt, mp3, wav?). Nie wiem, czy Delphi bezpośrednio wspiera inne metody niż ładowanie z zasobów ("load from memory"), ale np. w bibliotece do gier SFML obiekty obrazków, dźwięków, czcionek mają metodę LoadFromMemory, dzięki czemu możesz ładować plik prosto z tablicy wkompilowanej w aplikację.
W zasobach ciałbym mieć pliki *.dds, *.jpg i *.vob
Z jpg nie ma problemu. Nie wiem czy łatwo sobie z tym poradzisz domowymi sposobami. Ale ciężko mi sobie wyobrazić odpalanie VOB'a prosto z zasobów, zwłaszcza gdy jest duży. Nie wiem, czy w ogóle kodeki/komponenty do odpalania video obsługują takie rzeczy. To dość nietypowa sprawa i nawet ciężko coś wygooglować na ten temat. Nawet gry trzymają sobie filmy w osobnych plikach. Czasem we własnym formacie. Ale filmy przy odtwarzaniu zazwyczaj są streamowane/buforowane. Moim zdaniem za dużo kombinowania. Są programy do takich rzeczy:
http://windows.podnova.com/software/5552622.htm - dowód, że sią da, ale jak oni to zrobili to ja nie wiem :) W Delphi we własnej aplikacji może być ciężko, chyba, że znajdziesz odpowiednie komponenty.
Muciek napisał(a):
ale jak oni to zrobili to ja nie wiem
Uprzednio przygotowany EXE-k wczytujący plik z zasobów.
Tzn te pliki *.vob to pliki modelów samochodów w grze Live for speed..
chyba sobie odpuszczę
Mi też na początku skojarzyło to się z filmami DVD :)
Modele akurat dość łatwo wpakować do pliku exe. Napiszesz sobie jakiś skrypt/program, który zapisze Ci taki model jako kod (w tym przypadku jakaś tablica w Delphi). To może być sama geometria (tablica wierzchołków, koordynaty tekstur itp.). W programie tylko interpretujesz dane z tablic (tworzysz listy wyświetlania itp.). Ale wciąż trzeba by trochę przy tym czasu spędzić. Ze słomianym zapałem nie da rady ;) Teksturę z zasobów też można utworzyć dla OpenGL. Przykład tutaj:
http://nehe.gamedev.net/tutorial/loading_textures_from_a_resource_file__texturing_triangles/26001/
Przetłumaczalny na Delphi, bo pod tutorialem masz przykład w Delphi.