kategoria: Programy
[#61] Re: Pakowanie danych do kilku plików

@mailman, post #60

Czytałem ten kurs, ale na pierwszy rzut oka mnie trochę przerósł :)

@Krashan
Sprawdziłem FakeGame tak na szybko, zainstalowałem do RAM i zawisł przy próbie rozpakowywania :) pewnie dlatego, że wybrałem RAM:.

Wygląda na prosty kod, ale zastanawia mnie kilka rzeczy:
1) Czy można pisać taki kod w notatniku w Windows (Notepad++), aby móc swobodnie używać polskich znaków? Zastanawiam się, jak sobie Installer radzi ze znakami końca linii $13, czy używać tylko znaków LF, czyli $10?

2) Tu Installer sam wyłapuje od systemu, czy mamy polskie lokale, a gdybym chciał na początku stworzyć pole wyboru języka, tak jak to jest w przypadku instalacji AmigaOS 3.2, to wtedy pewnie do dyskietki należy dograć cały katalog LOCALE i wszystkie języki, które installer by obsługiwał, tak?

3) Wszystkie zmienne to po prostu słowa typu gdzie, tak jak to miało miejsce w instalatorze Kajko i Kokosz, zmienne pobierające dane z systemu zaczynają się znakiem @ jak w przypadku @language, natomiast stałe zaczynają się znakiem #, mam rację?

4) Nie rozumiem tego:

Domyślam się, że Join to komenda systemowa łącząca części LHA w jeden plik, a każdy %s to odwołanie do (tackon #dest "fakegame.lha.0x")?

Natomiast tu już całkiem się pogubiłem i nie kumam co oznacza >\"CON://640/200/%s/AUTO\"
[#62] Re: Pakowanie danych do kilku plików

@tukinem, post #61

Sprawdziłem FakeGame tak na szybko, zainstalowałem do RAM i zawisł przy próbie rozpakowywania :) pewnie dlatego, że wybrałem RAM:.
Nie, tutaj zadziałało to, co słusznie mi wytknął DonAdan. Nie mogę zakładać, że użytkownik ma najnowszą wersję LhA i powinienem samo LhA we właściwej wersji umieścić na dyskietce. Ale o tym poniżej.
Czy można pisać taki kod w notatniku w Windows (Notepad++), aby móc swobodnie używać polskich znaków?
Można, trzeba tylko zrobić dwie rzeczy w menu Notepada: Edycja/Konwersja znaku końca linii/Konwertuj na format Unix (LF) oraz Format/Zestaw znaków/wschodnioeuropejski/ISO-8859-2.
Tu Installer sam wyłapuje od systemu, czy mamy polskie lokale, a gdybym chciał na początku stworzyć pole wyboru języka, tak jak to jest w przypadku instalacji AmigaOS 3.2
Aż zajrzałem jeszcze raz na dyskietkę "Install3.2"... Tam jest to zrobione następująco. Jest jeden plik instalacyjny, zawierający teksty we wszystkich językach (tak samo jak mój przykład), ale jest 15 ikonek. Każda ma ustawiony tooltyp LANGUAGE na "swój" język. Ten tooltyp wymusza na installerze użycie konkretnego języka ponad autodetekcją. Z tym, że na dyskietce musi być biblioteka locale.library i pliki Installer.catalog we wszystkich językach jakie chcemy obsłużyć.
Wszystkie zmienne to po prostu słowa typu gdzie, tak jak to miało miejsce w instalatorze Kajko i Kokosz, zmienne pobierające dane z systemu zaczynają się znakiem @ jak w przypadku @language, natomiast stałe zaczynają się znakiem #, mam rację?
Prawie. Zgadza się, że zmienne zaczynające się od @ są wstępnie zdefiniowane przez Installera i część z nich Installer ustawia zgodnie z informacjami pobranymi z systemu. Natomiast jest zalecane (w manualu do Installera), żeby wszystkie swoje zmienne zaczynać znakiem #, co autor skryptu do "Kajko i Kokosz" po prostu olał. W Installerze nie ma stałych i dodanie znaczka # nic nie zmienia w zachowaniu zmiennej. Po prostu jest to zalecenie.
Nie rozumiem tego:
Installer ma taki ficzer jak "podstawianie tekstów" (string substitution), czyli automatyczny printf(). Jeżeli w wyrażeniu ujętym w nawias pierwszym elementem jest string (albo zmienna zawierająca string), to wszystkie znaczki w stylu "%s", czy "%ld" zostają podstawione kolejnymi stringami z wyrażenia. Przykład prosty:
("Mój kolega %s pije %s.", "Janek", "piwo")
da w efekcie "Mój kolega Janek pije piwo.". Dokładnie to podstawienie jest wykonywane systemową funkcją RawDoFmt() z exec.library i w autodocu do niej jest pełen opis wszystkich dostępnych "procentów".
nie kumam co oznacza >\"CON://640/200/%s/AUTO\"
LhA normalnie w czasie rozpakowywania archiwum wyświetla pliki i postęp w oknie shella, w którym się je odpali. Ale Installera odpalamy zazwyczaj z ikonki, więc LhA pracowałby "w milczeniu" dość długo i użytkownik nie wiedziałby co się dzieje ("a może zwisło?"). Dlatego przekierowuję (znak ">") to, co wypisuje LhA, do własnoręcznie otwartego okienka shella, czyli urządzenia CON:. Kolejne parametry CON: oddzielone są ukośnikami:
CON:[x_okna]/[y_okna]/[szer_okna]/[wys_okna]/[tytuł_okna]/[AUTO]/[CLOSE]/[WAIT]
Pominięcie czegoś oznacza wartość domyślną. Więc przekierowałem "wydruk" LhA do okna konsoli o położeniu domyślnym, rozmiarach 640x200 pikseli, tytule podstawionym z #msg_unpack_shell_title i okno jest typu AUTO, czyli otwiera się automatycznie, gdy LhA wyśle do niego cokolwiek. CLOSE oznaczałoby możliwość zamknięcia okna przez użytkownika, WAIT oznacza, że po wykonaniu komendy LhA okno pozostałoby otwarte (ale tego nie dałem, więc jak LhA skończy robotę, to się samo zamknie).

I tu wracamy do pytania, czemu Ci się powiesiło. Otóż niektóre wersje LhA (na przykład 2.2) reagują zwisem na przekierowanie. Najnowsza wersja 2.15 z Aminetu pracuje poprawnie. Powinienem dorzucić tę dobrą wersję na dyskietkę i z niej korzystać. Tak zrobiłem w instalerze do GCC-Pack. Ty masz pewnie na dysku tę wersję 2.2, albo może jeszcze starszą i zwisło. Niestety ludzie patrzą na wersję programu jak na ułamek (zamiast dwie oddzielne liczby) i myślą, że 2.2 jest nowsze od 2.15... Jak sobie installniesz 2.15 w systemie, to skrypt pójdzie dobrze. A ja przerobię pierwszą dyskietkę i skrypt, zostawiłem tam na szczęście trochę miejsca.

Ostatnia aktualizacja: 18.04.2024 09:05:54 przez Krashan
1
[#63] Re: Pakowanie danych do kilku plików

@Krashan, post #62

O właśnie takie wytłumaczenie mi chodziło. W weekend spróbuję napisać własny instalator do czegoś prostego, narazie bez łączenia plików.

Aż zajrzałem jeszcze raz na dyskietkę "Install3.2"... Tam jest to zrobione następująco. Jest jeden plik instalacyjny, zawierający teksty we wszystkich językach (tak samo jak mój przykład), ale jest 15 ikonek. Każda ma ustawiony tooltyp LANGUAGE na "swój" język. Ten tooltyp wymusza na installerze użycie konkretnego języka ponad autodetekcją. Z tym, że na dyskietce musi być biblioteka locale.library i pliki Installer.catalog we wszystkich językach jakie chcemy obsłużyć.


Tutaj zły przykład wybrałem, bo faktycznie OS 3.2 ma kilka instalatorów. Miałem na myśli to, co siedzi w skrypcie z Picasso96. Tam jest jeden skrypt, użytkownik wybiera sobie język do instalacji i dalej już komunikaty lecą w wybranym języku. Tu wygląda to następująco:
(if
=@language "english"
(set #language_found 1)
(set #zmienna "tekst")
)
; itd


Chociaż mimo wszystko wybieram "english", to napisy w oknie są faktycznie po angielsku, ale przyciski "Kontynuuj", "Przerwij instalację" i "Pomoc" są po polsku (system mam po polsku). Chyba prościej jest używać zwyczajnie @language żeby sobie Installer sam wybrał język z Workbencha.
[#64] Re: Pakowanie danych do kilku plików

@tukinem, post #63

Moim zdaniem skrypt do Picasso96 jest zrobiony źle i tak się robić nie powinno, dlatego, że to się kończy mieszaniną dwóch języków. Wszystkie teksty, jakie zobaczymy w czasie instalacji w oknie Installera dzielą się na dwie grupy:
  • Teksty wewnętrzne Installera czyli standardowe komunikaty, teksty na przyciskach, standardowe helpy do funkcji itp. Te są ładowane z pliku "Installer.catalog" w odpowiednim języku. Czyli w języku, w jakim mamy system, chyba że w ikonce jest tooltyp LANGUAGE, wtedy w tym języku, na który wskazuje tooltyp. Zmienna @language zostanie ustawiona tak samo, czyli albo język systemu, albo z tooltypa, jeżeli jest.
  • Teksty nasze, zdefiniowane w skrypcie. Jeżeli wybierzemy je według @language, to wtedy mamy gwarancję, że obie grupy tekstów będą w tym samym języku.

Najważniejsze, że język pierwszej grupy tekstów decyduje się w momencie uruchamiania skryptu i potem już z poziomu skryptu nie można go zmienić. Dlatego zmiana języka w samym skrypcie zmieni nam tylko grupę drugą no i możemy mieć miszmasz.

Uniwersalnym sposobem jest zrobienie tego tak jak w instalce OS 3.2. Czyli tyle ikonek do skryptu, ile języków obsługujemy, w każdej LANGUAGE ustawione na jeden język. Po pierwsze, to zadziała nawet jeżeli zabootujemy z dyskietki*, wtedy locale nie są ustawione. Ale użytkownik wybierze swój język, co spowoduje że wszystkie teksty będą w jego języku. Jeżeli użytkownik nie znajdzie swojego języka, wybierze inny jaki zna (najczęściej angielski, ale niekoniecznie) i znowu wszystko będzie w tym wybranym języku.

Minimalnie gorsza jest jedna ikonka bez LANGUAGE. Kiedy jest gorsza? Jeżeli użytkownik ma system w języku, jakiego nie obsługujemy. Wtedy sam Installer odpali się w jego języku, ale nasze teksty będą po angielsku.

*No, prawie, bo jest jeszcze kwestia czcionki w sytuacji, gdy dany język korzysta z kodowania innego, niż ISO-1.

Ostatnia aktualizacja: 18.04.2024 10:10:00 przez Krashan
[#65] Re: Pakowanie danych do kilku plików

@Krashan, post #62

Zauważyłem błąd w przykładzie, a nie mogę już edytować. Z rozpędu dałem przecinki niepotrzebnie. Powinno być
("Mój kolega %s pije %s." "Janek" "piwo")
[#66] Re: Pakowanie danych do kilku plików

@tukinem, post #63

Ja bym tylko dodal, ze im bardziej skomplikowany skrypt instalacyjny tworzysz, tym bedzie mniej miejsca na dyskietce na dane z gry. Zwykle to bez znaczenia, ale moze tez oznaczac, ze potrzebna bedzie jeszcze jedna dyskietka.
Jezeli skrypt instalacyjny jest prosty typu:

1.Wybierz miejsce gdzie zainstalowac gre.
2. Wloz dyskietke numer 1, potem numer 2 itd do stacji.

To robienie wersji jezykowych skryptu, innych niz angielska jest dla mnie bez sensu.
Taka sztuka dla sztuki, bo albo nie uzywasz wtedy roznych ogonkow, umlautow itp w takim tekscie albo potrzebujesz podalaczac rozne niepotrzebne pliki na dyskietce.
Ogolnie taki Instaler dla gry powinien byc jak najprostszy i tzw. "idioto odporny".
Dlatego proponowalem, zeby na pierwszej dyskietce dolaczyc (spakowane Stonecrackerem) LhA, Join (dzialajce na kick 2.0) i Installer (w wersji, ktora nie musi byc najnowsza, ale takiej zeby dzialala od kick 2.0 z 68000 do kick 3.2 z 68060). Dobrze tez jak jest krotka i zajmuje po spakowaniu jak najmniej miejsca.

Ale jak chcesz, sobie skomplikowane skrypty ogladac w celach naukowych to WEPL, zrobil taki do instalacji gier pod WHDload.
[#67] Re: Pakowanie danych do kilku plików

@Don_Adan, post #66

W sumie to już sam Installer zajmuje 100KB, czyli 1/8 dyskietki. Gdyby dodawać faktycznie wszystkie LOCALE, to pierwsza dyskietka byłaby jedynie z instalatorem, a dopiero z drugiej dyskietki gra zaczęłaby się instalować. To faktycznie bez sensu. Ale z drugiej strony sam skrypt nie zajmuje dużo miejsca.

Napisałem sobie prosty przykład, który działa tylko w trybie EXPERT. Użyłem pytania o katalog docelowy, ładnie instaluje i wyświetla na koniec napis komendą (exit a$ (quiet)).

Oj, gdybym kilka miesięcy temu to wiedział, to bym nie pisał instalatora Electromana w Blitz Basicu i Ami Blitzu jednocześnie
[#68] Re: Pakowanie danych do kilku plików

@Don_Adan, post #66

Dlatego proponowalem, zeby na pierwszej dyskietce dolaczyc (spakowane Stonecrackerem) LhA, Join (dzialajce na kick 2.0) i Installer
Należy przy tym zauważyć, że instrukcja do Stonecrackera rzecze: "Program jest PublicDomain dopóki przy jego pomocy nie zarabiasz pieniędzy. Jeżeli jesteś zainteresowany użyciem programu w produktach komercyjnych, skontaktuj się ze mną." Nie wiem, czy gra Tukinema ma być programem komercyjnym, ale warto o tym pamiętać, żeby potem nie było kolejnej amigowej opery mydlanej.

Ponieważ FakeGame nie jest produktem komercyjnym , spakowałem na próbę Installera 43.3 i kurczy się ze 107 440 bajtów do 61 580.
[#69] Re: Pakowanie danych do kilku plików

@Krashan, post #68

Zawsze sie mozna zapytac autora StoneCrackera, jest na EAB.
Ale StoneCracker byl tak czesto uzywany w grach, ze watpie zeby sie go pytali o zgode.
Pewnie starsza wersja Installera sie jeszcze lepiej spakuje, chyba, ze jakas nowa opcja jest do czegos potrzebna w instalacji.
Ewentualnie, uzyc innego packera do exekow. Ale tych nowych pakerow nie znam, a StoneCracker byl bezproblemowy na 68040/68060,
gdzie inne starsze pakery mialy problemy z cachem.
1
[#70] Re: Pakowanie danych do kilku plików

@tukinem, post #67

Zrobisz jak uwazasz.
Ale dla mnie wersje jezykowe przy instalacji maja sens tylko jak ktos instaluje program uzykowy typu P96 lub Amiga OS, gdzie trzeba podejmowac duzo wyborow.
W przypadku gry w wersji instalacyjnej to uzytkownik wybiera tylko katalog docelowy i zmienia dyskietki.
Jak ktos tego nie jest w stanie ogarnac po angielsku to raczej nie nadaje sie, zeby posiadac Amige.
1
[#71] Re: Pakowanie danych do kilku plików

@Don_Adan, post #69

To w razie czego jest rozwiązanie problemu. Z drugiej strony dopóki się nie zna finalnej wielkości gry, nie wiadomo ile pustego zostanie na ostatniej dyskietce, co się w oczywisty sposób przenosi na pierwszą, dopychając pozostałe na maksa. Może się okazać, że mamy np. 500 kB luzu i wtedy można nie pakować. Gorzej gdy jesteśmy na granicy. Przy fizycznej dystrybucji na realnych dyskietkach, każda sztuka kosztuje pieniądze i czas na nagranie. Ale o tym zdecyduje już autor gry.
1
[#72] Re: Pakowanie danych do kilku plików

@Krashan, post #71

Jak chcesz na maksa wykorzystac pojemnosc dyskietki do instalacji to tylko pierwsza dyskietka jest DOS a pozostale sa NDOS.
Czesci archiwum lha nagrywasz na dyskietki trackowo po 901120 bajtow od konca archiwum.
Na pierwsza DOS dyskietke dogrywasz jeszcze 2 krotkie programiki z pakietu WHDload:
DIC ktory tworzy obraz dyskietki (901120 bajty) .
CRC ktory liczy sume kontrolna pliku (jakby ktos wlozyl zla dyskietke specjalnie lub przypadkiem).
Czyli tworzysz obraz dyskietki, sprawdzasz CRC tego obrazu jak ok, to uzywasz "join" , a jak bad to powtorka odczytu.
[#73] Re: Pakowanie danych do kilku plików

@tukinem, post #67

W sumie to już sam Installer zajmuje 100KB, czyli 1/8 dyskietki


Jeżeli ktoś będzie grę instalować na dysk twardy, to jak dla mnie logicznym się wydaje, że program Installer powinien posiadać na tym dysku twardym i na dyskietce, z której gra będzie instalowana mogłoby go nie być.

Ostatnia aktualizacja: 18.04.2024 20:01:44 przez mailman
[#74] Re: Pakowanie danych do kilku plików

@mailman, post #73

W teorii tak, ale sa rozne wersje Installera, ktore dzialaja lub nie dzialaja na niektorych systemach lub procesorach.
No i w jakim katalogu na HD jest taki Installer. Jedni maja go w C, drudzy w Utilities, inni moga miec gdzie indziej.
Jesli instalacja ma byc w miare bezproblemowa to Installer dolaczany byl na dyskietce z programem/gra.
Wiele osob nie zna na tyle Amigi, zeby samemu sobie poradzic.
Pytania w stylu jak uruchomic gre w formacie 'gra.lha'" lub jak nagrac/stworzyc z 'gra.lha' plik 'gra.adf'.
Doswiadczeni uzytkownicy Amigi sobie poradza bez Installera, niedoswiadczeni raczej polegna.
[#75] Re: Pakowanie danych do kilku plików

@Don_Adan, post #74

Trochę głupio żeby gra wymagała Amigi 1200 i Installera na dysku. Nie sprawdzałem jeszcze czy on już sam w sobie jest pakowany, czy można go potraktować Stonecrackerem. No ale nieuniknione, że gra zajmie z 5 dyskietek lekko więc 100KB na Installer mi nie szkoda.

A tak jeszcze z ciekawości. Program Join jest dołączany do Workbencha czy do kickstartu? Nie zaglądałem do katalogu SYS:C/, a i też mnie to zbytnio nigfy nie interesowało, co tam jest a czego brakuje.

Ostatnia aktualizacja: 18.04.2024 21:24:14 przez tukinem
[#76] Re: Pakowanie danych do kilku plików

@tukinem, post #75

Zadna czesc Amigowego systemu w oryginale nigdy nie byla dystrybuowana w formie spakowanej. Wiec Installer tez nie byl.

Ja do laczenia/dzielenia plikow uzywalem FileMastera 2.2.
Join nie jest czescia kickstartu. Jest za rzadko uzywany, zeby to mialo sens.
Normalny kick ma 512 KB i ten obszar powinien byc dobrze/madrze wykorzystany.
[#77] Re: Pakowanie danych do kilku plików

@Don_Adan, post #76

Póki co gra zajmuje niecałe 4MB. To dopiero powiedzmy połowa, chociaż jest przed połową, ale gdzieś drugie 4MB dojdzie na resztę. Potem muzyka - kolejne 3MB.

Chciałem ogólnie grę puścić na CD, ale wydawca twierdzi, że Amiga i CD to nie ma sensu, bo Amiga to dyskietki... no szkoda, bo naprawdę dużo dużo grafik, dźwięków, muzyki i to wszystko się kumuluje w megabajty...

Póki co, napisałem sobie szkielet instalatora, który ładnie kopiuje "surowe" pliki bez rozpakowywania / pytania o zmianę dyskietek itd. Jak skończę grę, to wtedy będę myśleć, czy jest faktycznie sens pakować to na dyskietki i ile LHA ściągnie rozmiar w dół. No ale koniec planuję wstępnie minimum na grudzień, bo to bardzo skomplikowane. Najwyżej odgrzebię temat jak będę na dalszym etapie gry, powiedzmy w 75%.
[#78] Re: Pakowanie danych do kilku plików

@tukinem, post #77

Wydawca wersji fizycznej ma racje, instalacyjna wersje dyskietkowa zainstalujesz na kazdej dzialajacej Amidze AGA.
Wersje CD juz nie, potrzebny jest CD w Amidze, albo PC-et z CD.
Skoro masz juz polowe gry to mozesz sprawdzic jak sie gra bedzie pakowala.
1. Spakuj wszystkie (rozpakowane) pliki LZX
2. Spakuj wszystkie (rozpakowane) pliki lha 2.15 (wybierz najlepszy tryb kompresji)

Jak masz PC-ta to spakuj wszystkie rozpakowane pliki
1. Arj m7 (depacker jest na Amige)
2. PackFire (tryb LZMA) tez depacker jest na Amige

Podejrzewam, ze PackFire w trybie LZMA zmiazdzy wszystkie inne archiwizery.
Wedlug mnie jest po prostu idealny do tworzenia instalacyjnej wersji gry na AGA.

A mnie ciekawi czy mam racje i jakie sa roznice w wielkosci po spakowaniu polowy gry bez muzyki.
[#79] Re: Pakowanie danych do kilku plików

@Don_Adan, post #74

W teorii tak, ale sa rozne wersje Installera, ktore dzialaja lub nie dzialaja na niektorych systemach lub procesorach.
Masz jakiś przykład? Z tego, co wiem, jedynym wymaganiem jest system 2.0+ i nie słyszałem, żeby były jakieś problemy z określonymi procesorami.
[#80] Re: Pakowanie danych do kilku plików

@tukinem, post #75

Nie sprawdzałem jeszcze czy on już sam w sobie jest pakowany, czy można go potraktować Stonecrackerem.
Ja sprawdzałem. Nie jest pakowany, można go potraktować Stonecrackerem i działa. Zajmuje wtedy 61 kB zamiast 107 (wersja 43.3).

Program Join jest w katalogu C:, a więc w Workbenchu.
[#81] Re: Pakowanie danych do kilku plików

@Don_Adan, post #78

ARJ i PackFire odpada, bo nie mam emulatora ST.

Gra na chwilę obecną zajmuje 3 569 138 B
LHA w wersji 020+ i spakował do 1 871 075 B.
LZX spakował do 1 768 775 B.

Na pewno dojdzie dużo plików .MOD (około 25). Te dane, co są teraz, podwoją się albo i potroją. Dojdą pliki IFF 8SVX, pliki binarne pakowane crunchmanią, pliki których nie mogę pakować ze względu na sposób ładowania ich do Blitz Basic 2 (banki shape'ów) i myślę, że plik uruchamialny urośnie do 700/800KB bez pakowania (obecnie ma 307KB). Może lepiej go nie pakować Stonecrackerem, jeśli ma być pakowany LHA / LZX?
[#82] Re: Pakowanie danych do kilku plików

@tukinem, post #81

Może lepiej go nie pakować Stonecrackerem, jeśli ma być pakowany LHA / LZX?
DonAdan już pisał - jeżeli pakujesz dystrybucję archiwizerem, nie baw się w żadne Crunchmanie i pakowanie poszczególnych plików. Jedyne co na tym zyskujesz, to to, że zainstalowana gra mniej zajmuje na dysku. A to w dzisiejszych czasach nie ma żadnego znaczenia. Tracisz zaś czas ładowania i wymagania pamięciowe.
1
[#83] Re: Pakowanie danych do kilku plików

@Krashan, post #79

Na pewno byl problem z 68000. Sporo sie kiedys naszukalem nowszej wersji dzialajacej bez odd address errors.
Bodaj wersje z OS 3.5 i OS 3.9 nie dzialaly na 68000. Jeszcze jakies problemy byly przy instalacji z WHDload, ale juz nie pamietam o co chodzilo.
[#84] Re: Pakowanie danych do kilku plików

@tukinem, post #81

NIE POTRZEBUJESZ zadnego emulatora Atari ST, a PC-ta. To sa programy na PC-ta, tworzone przez bylych uzytkownikow Atari ST. Dzieki temu masz depacker w asemblerze 68k, a szybkie pakowanie na PC-cie. PackFire bodaj 4GB pamieci na tablice pakujaca wymaga, zaden Atari ST tyle nie ma.
Ja uzywalem plikow stworzonych tymi programami, no i roznica jest bardzo duza, jesli chodzi o ich wielkosc.
Szczegolnie jak pakujesz sample lub moduly, ktore sie najgorzej pakuja uzywajac innych pakerow.

Tak jak pisalem poprzednio, nie uzywaj zadnego pakera jak robisz wersje instalacyjna a nie wersje dzialajaca z dyskietek.
Powinienes sporo zyskac, podwojne pakowanie zawsze daje gorsze rezultaty niz raz spakowane a dobrze.
[#85] Re: Pakowanie danych do kilku plików

@Don_Adan, post #84

Pewne pliki binarne jednak muszę pakować. Samo rozpakowywanie działa ułamek sekundy na 14MHz np bitmapy 8 bitplanowe, czy pliki z danymi.

Nie bardzo wiem jak użyć tych packerów. PackFire pobrałem z pouet ale nie wiem jak nim pakować. ARJ tej konkretnej wersji nie mogłem znaleźć.
[#86] Re: Pakowanie danych do kilku plików

@tukinem, post #85

Oba chyba dzialaja tylko spod Windowsowego shella, czy jak sie to tam nazywa:

link
Tutaj spakowal z 300KB do 100KB.

PackFire plik_niespakowany plik_spakowany
Poszukam ARJ z m7 tzn. m7 to jest opcja do wyboru a nie numer wersji ARJ.

Ostatnia aktualizacja: 19.04.2024 21:23:22 przez Don_Adan
[#87] Re: Pakowanie danych do kilku plików

@Don_Adan, post #86

Tutaj, masz porownanie packerow (dla wersji dyskowych):

link

Tylko to sa porownania dla PackFire (TINY) a nie dla PackFire (LZMA). PackFire ma 2 metody pakowania.


Tutaj jest ARJ:
link
[#88] Re: Pakowanie danych do kilku plików

@Don_Adan, post #87

Coś mi to opornie idzie. Packfire chce konkretny plik pakować, a nie cały folder:


Spróbowałem napisać sobie installer do LHA z wyborem wersji i zatrzymałem się na komendzie (If).

Oto mój kod:
;UZYTKOWNIK WYBIERA ODPOWIEDNIA WERSJE DO INSTALACJI
(set #wersja
 (askchoice
  (prompt "Select a version of LHA for You")
  (help "Version must be compatible with Your CPU")
  (choices
   "LHA 1.50r with keyfile"
   "LHA 2.10"
   "LHA 2.15 for 68000"
   "LHA 2.15 for 68020"
   "LHA 2.15 for 68040"
  )
  (default 0)
 )
)

;UZYTKOWNIK WYBIERA SCIEZKE DO INSTALACJI
(set #dest
 (askdir
  (prompt "Select a drawer to install files")
  (help "Select a drawer to install files")
  (default "RAM:")
 )
)

;JESLI WYBRALISMY OPCJE PIERWSZA, TO TRZEBA SKOPIOWAC PLIK LHA_1.50r
(if #wersja=0
 (copyfiles
  (source "LHA_1.50r")
  (dest #dest)
 )
)


Niestety, nie kopiuje. Zamiast kopiowanie wpisałem tak:
(if #wersja=0
 (message "GOOD")
 (message "BAD")
)

Niestety wyświetla BAD, mimo że zmienna #wersja jest równa 0... Co robię nie tak?
[#89] Re: Pakowanie danych do kilku plików

@tukinem, post #88

Bo PackFire widac tak ma, ze pakuje tylko pliki a nie katalogi z plikami.
Moze sa jakies skrypty na PC-ta, ktore to umozliwiaja.
Ale ja sie na PC-cie nie znam.
PackFire sie nadaje tylko do robienia wersji instalacyjnych programow/gier.
Do normalnych wersji dyskietkowych odpada, chyba ze do pakowania duzego glownego pliku.
A z LHA to za bardzo kombinujesz jak dla mnie, tylko Krashan moze Ci pomoc.
Zakladasz, ze na dyskietce bedziesz mial 5 wersji LHA?
Po co?

Edycja.
Pisalem juz, ze taki skrypt powinien byc jak najprostszy.
No chyba, ze robisz skrypt instalacyjny do instalowania wersji LHA.
Ale wtedy powinno sie raczej uzywac "copy as" a nie "copy".


Ostatnia aktualizacja: 20.04.2024 09:12:07 przez Don_Adan

Ostatnia aktualizacja: 20.04.2024 09:16:23 przez Don_Adan
[#90] Re: Pakowanie danych do kilku plików

@Don_Adan, post #89

Ten skrypt do instalacji LHA to dla siebie jako własna wygoda i dla własnego treningu. Chciałem sobie napisać na własny użytek taki instalator z wyborem wersji i nie umiem napisać warunku If sprawdzającego wartość zmiennej #wybor.
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem