Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Parsowanie dużego pliku .txt, Wyszukiwanie danych w pliku tekstowym 90MB
danket
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 17.12.2007
Skąd: inąd :)

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


Witam!
Pytanie moje dotyczy problemu, a w zasadzie możliwości przeparsowania dużego, wręcz ogromnego pliku .txt
Buduję serwis związany z nieruchomościami. Wszystkie oferty oraz wszystkie transakcje na rynku nieruchomosci od mniej więcej 1995 roku znajdują się w bazie danych, baza natomiast zarządzana jest przez system MLS (Multiple Listing Service). Jak nietrudno się domyślić, baza jest ogromna (w chwili obecnej około 100,000 pozycji). Każdej nocy system MLS-u zrzuca zawartość bazy do pliku txt w postaci 1rekord->1linia, a więc każdej nocy powstaje plik ze stu tysiącami linii, co daje mniej więcej około 90MB. Jako firma zrzeszona w systemie MLS mamy dostęp do owego pliku przez FTP i tylko przez FTP, nie ma w ogóle dostępu do dB.
Plik tekstowy wygląda mniej wiecej tak:

idNieruchomosci|idSystemowe|typNieruchomosci|idFirmy|idAgenta|cenaNieruchomosci|
..|...|...|.. itd
i tak 100,00 razy :)

Pytanie moje brzmi: czy ktokolwiek z szanownych forumowiczów miałby jakiekolwiek sugestie, jak w tak ogromym pliku, do którego jest tylko i wyłącznie dotęp przez FTP, wynaleźć te linie, które spełniają określone kryteria? Np. jak znaleźć takie linie, w których na pozycji 'idFirmy' występuje '123456' ? Bez większego wysiłku umysłowego fgets() i fscanf() odrzucam. Nie przy tak ogromych plikach. Jak to ugryźć? Przypominam, że plik znajduje sie na serwerze zdalnym, kosmicznie szybkim, ale jednak zdalnym, a
CODE
fopen('ftp://user:pass@server.com','r');

nie sprawia żadnego problemu.

Czy ktoś w ogóle z was spotkał się z takim zagadnieniem? Znalazłem pewne sugestie dotyczące parsowania dużych xml-i, ale tu dochodzi ewentualne wyszukiwanie w stringu. Zwracam się o pomoc, bo przetestowałem większośc możliwości.

Dzięki.
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: 24.08.2025 - 08:03