![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 243 Pomógł: 1 Dołączył: 1.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Mam plik baza.txt, który waży 45 MB i chcę z niego odczytać 100 linii zawrtości zaczynając odczyt od linii onumerze 10000.
Jakiej funkcji użyć do odczytu i jak czytać ? Dodam tylko, że file() deklaruje mi tyle pamięci, że nie da się załadować tak dużego pliku do pamięci . |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
przewinięcie do tak dużego pliku gdzie są nie regularne długości wersów trochę potrwa - 1 milion pomijając inne warunki to co najmniej sprawdzenie i zliczenie miliona znaków "\n" co musi minimalnie zająć pół sekundy (plus porównanie innych znaków) - w końcu patrzysz od początku pliku... tą techniką którą Ci wskazałem jesteś w stanie odczytywać baaaardzo duże pliki dosyć wydajnie - całość możesz wrzucić do jakiejkolwiek bazy danych, choćby płaskiej bazy danych jak SQLite gdzie każdy wiersz możesz mieć zindeksowany i dostęp do poszczególnych wierszy będzie szybszy...
ps. przecież interesowały Cię wielkości 100 razy mniejsze ;p - 10000 to nie to samo co milion ;D Ten post edytował zegarek84 2.11.2012, 22:38:30 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 05:59 |