![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 26 Dołączył: 26.01.2012 Skąd: Ci to przyszło do głowy? Ostrzeżenie: (0%) ![]() ![]() |
Witam, poszukuje skryptu kjtóry mi posortuje słowa znajdujące się w pliku tekstowym, każde słowo jest w innym wierszy, słów jest mniej niż 3 miliony, a pliczek ma rozmiar ~36MB
Dostałem od usera na forum takie coś:
Niestety nie działa, wyświetla błąd "Fatal error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 36854802 bytes) in C:\AppServ\www\index.php on line 6" Ma ktos skrypt który posortuje ten plik żeby słowa były od najkrótszego do najdłuższego? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 915 Pomógł: 210 Dołączył: 8.09.2009 Skąd: Tomaszów Lubelski/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Dlaczego to musi być skrypt? PHP nie nadaje się do takich rzeczy jak sortowanie plików o takich wielkościach (chyba że zrzucimy to na bazę danych, ale tutaj PHP miałoby tylko rolę "odczytaj linię i wrzuć do bazy"). Zasadnicze pytanie jest takie: czy chcesz ten plik posortować, czy chcesz mieć skrypt w PHP, który Ci to posortuje?
Edit: Postanowiłem jednak się zabawić i napisać skrypt w PHP (bez udziału baz danych) oparty na plikach tymczasowych (w celu ograniczenia zużycia pamięci). Nie sortuje on jednak alfabetycznie, ale tylko po długości.
Co do samego jednorazowego posortowania to nie wiem jak pod Windowsem, ale polecenie, które zadziała pod Linuksem wkleiłem Ci w poprzednim wątku http://forum.php.pl/index.php?s=&showt...st&p=979723. Na windowsie możesz zainstalować sobie cygwin - konsola i narzędzia konsolowe z linuksa. Ten post edytował redeemer 23.07.2012, 11:22:07 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 08:05 |