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: 243 Pomógł: 1 Dołączył: 1.06.2010 Ostrzeżenie: (0%)
|
Będę wykonywać operacje na obiektach, które w ścisłej kolejności zostały wygenerowane do pliku. Obiektami są dane przefiltrowane pod różnym kontem. Każdy taki plik stanowi unikalną kolejkę zadań na której pracuje moja aplikacja.
Zwyczaje musiałem wygenerować kolejkę zadań według której pracują procesy CRON. Wcześniej pracowałem na bazie i nie byłem wstanie zapisać 5 mln rekordów zanim nie przekroczę limitu czasu serwera na wykonanie skryptu. Wpadłem więc na pomysł aby agregować te dane w zmiennej i zapisać na koniec do jednego pliku. W sumie mógłbym trzymać w bazie tego typu rzeczy, ale za jakiś czas nie wyobrażałbym sobie wielkości bazy (IMG:style_emoticons/default/smile.gif) Dzięki temu teraz będę mógł szybko pracować na tych obiektach zgodnie z oczekiwaną kolejnością. |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%)
|
Wcześniej pracowałem na bazie i nie byłem wstanie zapisać 5 mln rekordów zanim nie przekroczę limitu czasu serwera na wykonanie skryptu. jeśli obrabiasz duże ilości danych to nie prościej wykupić jakiś najtańszy VPS byś miał dostęp do PHP spod konsoli?? nie miałbyś takich limitów czasowych - ale fakt, przynajmniej spojrzałeś innym okiem by zrobić to optymalniej... lub te dane mógłbyś obrabiać na lokalnej maszynie a dopiero potem wyniki przesłać na serwer... Wpadłem więc na pomysł aby agregować te dane w zmiennej i zapisać na koniec do jednego pliku. co to znaczy, że agregujesz dane w zmiennej?? czy te dane są przyrostowe i zwiększają tą zmienną z upływem czasu?? tzn. potrzebna pamięć skryptu rośnie stale zapewne... czemu danych nie zapisujesz na bieżąco do pliku linia po linii?? SplFileObject::fwrite, a plik otwórz z modyfikatorem "a"... swoją drogą trochę interesowałem się strumieniowymi bazami danych (nastawionymi na określone zdarzenia) i gdyby nie brak czasu to miałem pisać prostą implementację na swoje potrzeby bez implementacji języka SQL, z tym, że to raczej Cię nie interesuje gdyż to już programowanie sieciowe ;] |
|
|
|
fiasko [PHP]parsowanie pliku txt 2.11.2012, 21:20:17
Spawnm Nie da się od linii o numerze 10000.
Zainteresuj s... 2.11.2012, 21:22:18 
zegarek84 Cytat(Spawnm @ 2.11.2012, 21:22:18 ) ... 2.11.2012, 21:50:33
abort Możesz to zrobić, ale weź pod uwagę, że jeśli chce... 2.11.2012, 21:33:14
fiasko wygenerowałem dla testów plik z 1500000 linii kodu... 2.11.2012, 22:23:00
zegarek84 przewinięcie do tak dużego pliku gdzie są nie regu... 2.11.2012, 22:33:03
fiasko interesują mnie jeszcze większe bo będę dostawać p... 2.11.2012, 23:02:55 
zegarek84 Cytat(fiasko @ 2.11.2012, 22:54:30 ) ... 2.11.2012, 23:06:14
Crozin Wygląda na to, że masz do obrobienia duży plik i z... 2.11.2012, 23:30:26
zegarek84 w sumie też dobre pytanie, chyba, że nie ma dostęp... 2.11.2012, 23:39:04
Crozin A nie możesz po prostu wyłączyć limitu czasu wykon... 3.11.2012, 02:47:29
zegarek84 co racja to racja, będzie szybciej, ale liczyć nie... 3.11.2012, 12:31:49 ![]() ![]() |
|
Aktualny czas: 31.12.2025 - 17:43 |