![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 14.06.2005 Ostrzeżenie: (0%)
|
Mam problem, nie wiem jak obsłużyć plik o wielkości 2 GB
Chcę usunąć z niego jedną linię, np. 782. Wczytywanie tego pliku jako tablicy odpada. Wymyśliłem jeden sposób, wczytywania linijka po linijce i wpisywania każdej linijki do nowego pliku, a gdy trafi na linię 782 to po prostu ją omija i leci dalej. Może jest jakiś lepszy sposób na obsługę takich ogromnych plików? |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 182 Pomógł: 0 Dołączył: 4.01.2005 Skąd: piczu.info Ostrzeżenie: (10%)
|
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 14.06.2005 Ostrzeżenie: (0%)
|
No tak, ale 2GB wczytać do tablicy to jest pewien problem. Trzeba mieć niezły serwer (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif)
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 57 Pomógł: 0 Dołączył: 9.04.2005 Ostrzeżenie: (0%)
|
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 1 470 Pomógł: 75 Dołączył: 21.09.2005 Skąd: że znowu Ostrzeżenie: (0%)
|
nei da się niestety tego zrobić lepiej niż wczytując linia po lini, rozwiązania przedstawione przez kolegów (wszystkich wyżej) wrzucają cały plik do pamięci a więc zajmują 2GB pamięci! - rozwiązanie jaknajbardziej nieoptymalne i mocożerne. Wczytując plik linia po lini i sprawdzając poszczególne linie na wystąpnienie niechcianej jes możę nie najszybszym sposobem ale nie grozi ci tu błąd z powodu braku pamięci.
pozdrawiam |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%)
|
Cytat Może coś tak popróboj, ale operacje na takim pliku niezależnie od sposobu będą obciążały serwer. BZDURA - poprostu nie macie pojecia o programowaniu. Mowi Wam wogole cos wyrazenie "dostep swobodny" :?:
Ta f-cja czyta dowolna linie z pliku. Przerob ja sobie tak aby usuwala wybrana przez Ciebie linie. |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 1 470 Pomógł: 75 Dołączył: 21.09.2005 Skąd: że znowu Ostrzeżenie: (0%)
|
wszystko fajnie, ale NULL, powiedz mi z łaski swojej jaka funkcja w php odpowiada za usuwanie części pliku? bo jakoś nie zetknołem sie z taką jak do tej pory. Odczytanie dowolnej lini z pliku to jedno, ale usunięcie tej lini to drugie!
|
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 984 Pomógł: 41 Dołączył: 16.03.2002 Skąd: Płock Ostrzeżenie: (0%)
|
No to masz niezły problem (IMG:http://forum.php.pl/style_emoticons/default/rolleyes.gif) Moze lepiej zamiast php władować jakiś app w c++ do cgi-binu ?
|
|
|
|
Post
#9
|
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów |
jedyne co mi teraz przychodzi do glowy:
Zapisujesz do osobnego pliku zakres linii 0-<numer linii-1>, a potem <numer linii+1>-EOF. Linia po linii. troche malo ekonomicznie, ale innego wyjscia nie widze... |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 182 Pomógł: 0 Dołączył: 4.01.2005 Skąd: piczu.info Ostrzeżenie: (10%)
|
Mozna tez wykorzystac system ale wtedy byloby to niebezpieczne.
Dajac wszystkim dostep do zapisu: Kod chmod a+w /home/my/filename mozna wtedy wywolac sed:
nie znam sie dobrze na sed, wiec jak zle to niech ktos poprawi. |
|
|
|
![]() ![]() |
|
Aktualny czas: 21.12.2025 - 11:08 |