Skocz do zawartości

Jak to jest z tymi plikami?


Easeful

Rekomendowane odpowiedzi

Borykam się z takim problemem:

 

GML
file=file_bin_open('gra.exe');

for(i=1; i<=file_bin_size(file); i+=1)

{

bajt=file_bin_read_byte(file);

}

file_bin_close(file);

 

Wiem, że ten kod nie ma sensu, ale jest tylko przykładowy - takie jakby przemianowywanie pliku. No i jeżeli ta gra waży np. tylko 4MB, to potrwa to około 10-15 sekund. A taki WinRAR? Potrafi wypakować plik, który waży 100MB w niecałe 5 sekund, ba i on to musi czytać z pliku rar lub zip, deszyfrować i wpisywać do nowego pliku. Niby to wina gm'a, że za wolny. No ale bez przesady, w takiej skali? Czy nie ma innej metody, żeby taki plik przemianować szybciej? Bo coś mi się zdaje, że WinRAR robi to zupełnie inaczej...

Odnośnik do komentarza
Udostępnij na innych stronach

bo tego w GM szybko nie zrobisz, zrozum. jak juz uparcie dazysz ta droga, to jedyne wyjscie to odczytac plik tekstowo, zapisac do stringa, kompresowac, zapisac string do pliku.

 

A winrar robi to co nalezy - wczytuje caly plik do bufora za jednym zamachem (nie znak po znaku), dekompresuje, zapisuje zapisuje poszczegolne pliki tak samo za jednym zamachem. to jest standardowa metoda odczytu plikow, ja w ten sposob plik XET wazacy kilka mega wczytuje i zapisuje w ulamku sekundy, tak samo winrar i inne programy operujace na plikach, bo tego sie nie robi inaczej, to bylo by glupie posuniecie. w GM jedyne wyjscie na przyspieszenie tego to to co opisalem

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...