Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Usuwanie linii z ogromnego pliku
dzafel
post
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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
NuLL
post
Post #2





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" :?:

  1. <?
  2.    function readLine ($linenum,$fh) {
  3.        $line = fgets ($fh, 4096);
  4.        $pos = -1;
  5.        $i = 0;
  6.  
  7.        while (!feof($fh) && $i<($linenum-1)) {
  8.            $char = fgetc($fh);
  9.            if ($char != "\n" && $char != "\r") {
  10.                fseek($fh, $pos, SEEK_SET);
  11.                $pos ++;
  12.            }
  13.            else $i ++; 
  14.        }
  15.        $line = fgets($fh);
  16.        return $line;
  17.    } //readLine()
  18. ?>

Ta f-cja czyta dowolna linie z pliku. Przerob ja sobie tak aby usuwala wybrana przez Ciebie linie.
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: 27.12.2025 - 04:22