![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 616 Pomógł: 12 Dołączył: 16.07.2006 Skąd: : getCity ( ); Ostrzeżenie: (0%) ![]() ![]() |
czesc
mam problem mam plik tekstowy, ktory ma 500tys linii. chce go podzielic na kilkaset plikow po 200 linii jak to zrobic? chodzi mi o algorytm -------------------- Jeśli my czegoś nie zrobimy, zrobią to za nas inni
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
No dobra a gdzie problem?
![]() Tutaj jest pomoc a nie gotowe rozwiązania. -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
1) Otwierasz jeden duży plik $f1 (fopen)
2) Otwierasz drugi plik do którego bedziesz zapisywać $f2 3) Lecisz po $f1 while + feof 4) Odczytujesz linijke fgets 5) wrzucasz do $f2 fwrite 6) oczywiście organizujesz sobie jakieś liczniki np co do ilości linii albo ilości bajtów. W momencie przekroczenia jakiegoś limitu zamykasz $f2 i tworzysz drugi pod inną nazwą. -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 616 Pomógł: 12 Dołączył: 16.07.2006 Skąd: : getCity ( ); Ostrzeżenie: (0%) ![]() ![]() |
mi chodzi o cos takiego:"
otwieram plik file() i np w pętli for lece for($i=0; $i<count($open); $i++) { if($i%200 != 0) { } } jakos tak jak to dokladnie napisac zeby np zapisywal dobrze -------------------- Jeśli my czegoś nie zrobimy, zrobią to za nas inni
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
No to najprosciej uzyc file_put_contents.
Ale nie wiem jak ty chcesz otworzyć tak duzy plik za pomoca file... najszybciej będzie właśnie z fopen -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 616 Pomógł: 12 Dołączył: 16.07.2006 Skąd: : getCity ( ); Ostrzeżenie: (0%) ![]() ![]() |
no ok tak zrobie, ale nie wiesz dokladnie o co mi chodzi
nie wiem jak napisac ten algorytm zeby po wielokrotnosci np 200 zapisywało te linie do nowego pliku tekstowego o nazwie part_1.txt gdzie 1 to kolejna cyfra dpisywana automatycznie dobrze kombinuje z modulo? -------------------- Jeśli my czegoś nie zrobimy, zrobią to za nas inni
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
dobrze kombinuje z modulo? No pięknie kombinujesz ale po co ![]() Zobacz sobie jak w jakim tempie załaduje Ci się tablica 5000 rekordów z pliku. -------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Wersja z modulo
-------------------- |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
no ok tak zrobie, ale nie wiesz dokladnie o co mi chodzi nie wiem jak napisac ten algorytm zeby po wielokrotnosci np 200 zapisywało te linie do nowego pliku tekstowego o nazwie part_1.txt gdzie 1 to kolejna cyfra dpisywana automatycznie dobrze kombinuje z modulo? Może być i moduło ale ja wymyśliłem na poczekaniu coś takiego:
ale nie wiem czy działa bo nie mogę przetestować. -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 616 Pomógł: 12 Dołączył: 16.07.2006 Skąd: : getCity ( ); Ostrzeżenie: (0%) ![]() ![]() |
tak to bym sam potrafil, ale nadal nie doszlismy do sedna sprawy, jak te linie zapisac wg wielokrotnosci 200
np dajmy na to pętla przeleciała pierwsze 200 linii, limit uopłynął i trzeba zapisać te linie do pliku, potem leci kolejne 200 i zapisuje te kolejne 200 -------------------- Jeśli my czegoś nie zrobimy, zrobią to za nas inni
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
tak to bym sam potrafil, ale nadal nie doszlismy do sedna sprawy, jak te linie zapisac wg wielokrotnosci 200 np dajmy na to pętla przeleciała pierwsze 200 linii, limit uopłynął i trzeba zapisać te linie do pliku, potem leci kolejne 200 i zapisuje te kolejne 200 To też Ci pokazałem +/- jak masz to zrobić... Skoro byś sam potrafił, to mogłeś nie pytać tylko robić samemu... Ten post edytował fifi209 22.07.2010, 21:54:18 -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 616 Pomógł: 12 Dołączył: 16.07.2006 Skąd: : getCity ( ); Ostrzeżenie: (0%) ![]() ![]() |
nie chodzilo o ciebie, twoje rozwiązanie działa pięknie z tym ze wstawia podwójne linie tzn puste linie są też, ale ogolnie ok, daje plusik
-------------------- Jeśli my czegoś nie zrobimy, zrobią to za nas inni
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
nie chodzilo o ciebie, twoje rozwiązanie działa pięknie z tym ze wstawia podwójne linie tzn puste linie są też, ale ogolnie ok, daje plusik przy implode usuń "\n" bo może być tak, że fgets po prostu pobiera ze znakiem nowej linii ;p -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 616 Pomógł: 12 Dołączył: 16.07.2006 Skąd: : getCity ( ); Ostrzeżenie: (0%) ![]() ![]() |
wziąłem sobie strimowałem trim() i smiga
-------------------- Jeśli my czegoś nie zrobimy, zrobią to za nas inni
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 23.05.2025 - 07:32 |