![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 27.01.2005 Skąd: Copa Cabana Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Muszę pociąć plik 70MB na części około 5MB, ale tak żeby poszczególne linie nie były pocięte, tzn. żeby nie było tak, że kawałek wiersza jest w jednym pliku, a reszta w drugim. Próbowałem w php za pomocą fopen i explode ale trwało to strasznie wolno. Natomiast Total Commander przecinał mi wiersz w połowie. Jakieś pomysły lub programy jak to zrobić? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Ale nie trzeba trzymac calych danych w pamieci:
1. musisz miec zagwarantowane ze kazda linia bedzie < 5MB $data_count = 0; // zlicza ilosc zapisanych danych do pojedynczego pliku 2. odczytujesz linie 3. jesli jej dlugosc + $data_count < 5MB to ja dopisujesz do $pliku i zapisujesz do $pliku; $data_count += dlugosc tej linii jesli nie zamykasz ten $plik a linie wpisujesz do nowego $pliku., $data_count = dlugosc tej linii 4. itd. az skonczy sie plik zrodlowy W pamieci trzymasz max 1 linie (choc oczywiscie moze ona byc dowolnie dluga). |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 10:43 |