Plik projektu

0

Witam wszystkich.
Temat daje do offtopu, gdyż nie interesuje mnie konkretny język programowania, a po prostu zasada działania.
Konkretnie chodzi mi o program, który tworzy własne pliki projektu.
Np programy takie jak: Nero, StartUML, Photoshop, czy chociażby OpenOffice lub Microsoft Office.

Wszystkie te programy mają funkcje stworzenia własnych projektów, co daje użytkownikowi możliwość odczytania swojej pracy na każdym komputerze z zainstalowanym oprogramowaniem oraz późniejszą pracę z danym projektem.

Moje pytanie brzmi: Jak takie coś można osiągnąć?
Mam tu na myśli właśnie program, który potrafi stworzyć własny plik projektu. W jaki sposób takie coś się wykonuje? jak po prostu umieścić potrzebne informacje w danym pliku? Aby nie było za łatwo to powiedzmy, że chodzi o pliki muzyczne, filmy albo obrazki, gdyż umieszczenie tekstu nie stanowi problemu, ale plików multimedialnych już tak. Jeszcze raz: jak to można zrobić?

0

Ostatnio popularnym (i dobrze!) rozwiązaniem (vide docx czy jakieś formaty Open Office (nie wnikałem we wszystkie)) jest po prostu ładowanie plików w zipa, w nich masz jakiś xml robiący powiązania między plikami, no i temu zipowi zmienia się rozszerzenie :) sprawdź sobie na właśnie dokumentach o których napisałem wyżej.

a jak nie to strukturkę musisz wymyśleć samemu. np. idea zapisywania danych w formacie: długość nazwy pliku (tekstowo nawet), separator jakis (np |), nazwa (jej dlugosc zapisalismy po to, zeby mozna bylo separator zawrzec w nazwie), dlugosc zawartosci (np empetrójki), separator i zawartosc, potem separator i np następne pliki tak samo (czy tam dane tekstowe).

23|super_nazwa_pliku69.txt|84|to mój plik zawierający trochę tekstu, ale równie dobrze można byłoby tu wsadzić mp3|5|ab.txt|20|123456789o123456789o

itd.

0
dzek69 napisał(a)

23|super_nazwa_pliku69.txt|84|to mój plik zawierający trochę tekstu, ale równie dobrze można byłoby tu wsadzić mp3|5|ab.txt|20|123456789o123456789o

itd.

Zamiast tego proponuję jednak xml. W .NET (i pewnie nie tylko) można serializować obiekty do xml i odwrotnie. Łatwiej się potem na tym pracuje. W miarę prosto też można edytować ręcznie taki pliki i są zwykle bardziej przejrzyste niż CSV i podobne.
PS: piszę tutaj tylko o drugiej propozycji, bo do pierwszej nie mam uwag ;)

0

Bardzo dziękuje za odpowiedzi.
Teraz przedstawię nieco mój tok rozumowania po przeczytaniu powyższych rad.

Tworzymy pewien plik w zawartości tekstowej. formatujemy dany tekst zgodnie z naszymi założeniami lub korzystamy z wygody jaką oferuje nam XML.
Do tak stworzonego pliku dopisujemy odpowiednie fragmenty tekstu, które posłużą nam do otworzenia projektu (długości słów itd.)
Gdybym chciał np zapisać w taki sposób plik mp3 to najpierw pobrałbym dane binarne z tego pliku (odczytałbym je i zapisał sobie, a następnie zapisał do pliku w odpowiednim miejscu zgodnie z formatem założonym wcześniej).
Czy tak?

0

Lepiej, żeby plik projektu był osobnym plikiem opisującym dane zawarte w innych plikach, niż zawierał te dane.

0

Ale w ten sposób np tworząc pewny zbiór plików mp3 trzeba by było dodawać do projektu masę różnych plików. Nie byłoby to wygodne a pakowanie do zip-a nie zawsze jest możliwe

0

Mówiłem - zaglądnij do dokumentu docx...
Załączniki, typu mp3 itd trzymasz sobie w folderach/cokolwiek, dodatkowo masz jeden plik np w xml, który zapisuje który plik jest do czego, jeżeli np tworzysz jakiś mikser plików audio to np gdzie jaki plik leży, jaką ma głośność, efekty i jak jest przycięty, potem TWÓJ PROGRAM (nie użytkownik!) pakuje to w zipa i nadaje nazwe np Projekt1.vzg (wymyśliłem Ci rozszerzenie vzg, ładne?).
Zanim spróbujesz znowu rozkminiać o co mi chodzi:
http://bit.ly/uxcrDH
Wybierz sobie jeden, zmień nazwę na zip, rozpakuj i zobacz co tam w środku

0

Niektóre programy, np. Ulead VideoStudio, w swoich plikach projektu nie zawierają faktycznych danych, a tylko ścieżki do plików multimedialnych znajdujących się na dysku - przez co sam plik projektu nie osiąga monstrualnych rozmiarów i jest szybko odczytywalny i edytowalny. Z drugiej strony - przenosząc dane trzeba przenieść nie tylko plik VSP, ale i wszystkie pliki mu "towarzyszące", ale zapis ścieżki jest względny, więc to zazwyczaj działa. Przy dużych danych ma to sens.

0
Projektant napisał(a)

Ale w ten sposób np tworząc pewny zbiór plików mp3 trzeba by było dodawać do projektu masę różnych plików. Nie byłoby to wygodne a pakowanie do zip-a nie zawsze jest możliwe

Dlaczego nie jest możliwe? Chyba dla każdego języka programowania istnieją biblioteki obsługujące kompresję zip.

1 użytkowników online, w tym zalogowanych: 0, gości: 1