Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]parsowanie pliku txt, Jak odczytać wybrany zakres linii z pliku txt ?
fiasko
post
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 .
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Spawnm
post
Post #2





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Nie da się od linii o numerze 10000.
Zainteresuj się sqlite na przyszłość.
Go to the top of the page
+Quote Post
zegarek84
post
Post #3





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


Cytat(Spawnm @ 2.11.2012, 21:22:18 ) *
Nie da się od linii o numerze 10000.
Zainteresuj się sqlite na przyszłość.

wiem, że żartowałeś by nie podać starej funkcji gdzie przy tamtym podejściu też można złe nawyki sobie wyrobić, też jej nie podam choć łatwo jej nazwę będzie wywnioskować co ją się stosuje do uchwytu pliku... po za tym jakoś SQLite też jest moim faworytem...

Z biblioteki SPL klasa
SplFileObject
metody:
SplFileObject::seek(int)
SplFileObject::fgets() | SplFileObject::current()


znajomość i umiejętne zastosowanie tych funkcji pozwala na szybie wrzucenie danych do bazy przy minimalnym zużyciu pamięci... dodatkowo jeśli chodzi o odczyt baaaaardzo dużych plików XML to hasło do google "SAX PHP" - choć mógłbym dać klasę w dokumentacji PHP ale masz też hasło na przykłady - jednak by dobrze wykorzystać ją poprogramuj se paradoksalnie w JavaScript by umiejętnie stosować technikę programowania zdarzeniowego lub w C++ a dokładniej w bibliotece QT

// EDIT
nie odświeżyłem sobie i widzę, że dostałeś linka do tych funkcji ;p
// edit 2
a jednak nie - po staremu to fgets (pobiera linię pliku i przewija wskaźnik dalej - ale skorzystaj z obiektowego podejścia i z biblioteki SPL) itd... za dużo tego dobrego miodziku ;D

Ten post edytował zegarek84 2.11.2012, 21:55:03
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 31.12.2025 - 10:28