Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: sortowanie (za)duzych tablic z pliku
Forum PHP.pl > Forum > Przedszkole
dem
1. tak jak w temacie...

przy zalozeniu czysto teaoretycznym ze ilosc wersow w postaci:

informacja.a 1||informacja.a 2||informacja.a 3
informacja.b 1||informacja.b 2||informacja.b 3
informacja.c 1||informacja.c 2||informacja.c 3

przekroczy liczbe 100 000, to nie mozna zaladowac tego do jednej duzej tablicy przy pomocy file(). //oczywiscie sie zagalopowalem... juz jest dobrze thnx activeplayer

w takiej sytuacji pojawil mi sie problem: jak posortowac zawartosc pliku z liczba wersy wieksza niz 100 000 ?

2. Przy tej sytuacji zastanawiam sie nad zapisywaniem nowego wersu na poczatek pliku. Malo efektywnym sposobem przy mniejszej liczbie wersow bylo wyciaganie z pliku tablicy i przylaczanie na jej poczatek nowych infomacji. Niestety to zawiedzie przy liczbie > 100 000. Jedynym rozwiazaniem przy zapisie nowego wersu do pliku, jakie przyszlo mi do glowy byloby:

1. Stworzenie pliku tymczasowego(tymczas.txt)
2. Zapisanie do niego nowego wersu
3. Przepisanie reszty starego wers po wersie do tymczas.txt
4. Skasowanie pierwotnego pliku
5. Zmiana nazwy tymczas.txt na wlasciwa

Oczywiscie takie rozwiazanie nie jest jedyne i chcialbym sie dowiedziec czy macie moze wy juz jakies dowswiadczenia lub pomysly w tej kwesti.

pozdro
ActivePlayer
pokaz fragment kodu. jestem ciekawy jak łądujesz plik uzywając filesize(). ja bym uzyl file().
dem
heh..dopiero co wrocilem z wakacji i sie zagalopowalem... oczywiscie masz racje... a wracajac do tematu ktos jest wstanie mi pomoc ?

czy może ktoś się zainteresować moim problemem? będe naprawde wdzięczny

naprawde nikt mi nie moze pomoc?
Ludvik
Może nie będzie to zbyt szybki sposób, ale na pewno da radę posortować to np. bąbelkowo. Wykorzystaj fakt, że możesz załadować dwie linijki z pliku i suma długości tych linijek będzie taka sama jeżeli zamienisz je miejscami. Początek i koniec będzie w tym samym miejscu. Więc możesz operować tylko na fragmencie pliku. Ta metoda będzie na pewno bardzo wolna, ale użycie pamięci będzie minimalne...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.