![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 1 Dołączył: 6.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam taki problem że potrzebuję zmienić masowo pewne fragmenty pliku tekstowego a następnie go zapisać na dysku. Struktura wygląda mniej więcej tak: dfgdf34534,54,34,656,ZNACZNIK1fjfdgj,dfg,345345,5464,234,ZNACZNIK1345dfg,45,fg45 Problem polega na tym że muszę zmienić przecinki na inny znak tylko we fragmencie między znacznikami ale trwa to strasznie długo. Plik zawierający dane wejściowe zawiera 20 000 000 znaków. Działającą funkcję do podmiany mam napisaną ale szukam teraz szybszego rozwiązania. Macie jakieś sprawdzone metody ? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Działającą funkcję do podmiany mam napisaną ale szukam teraz szybszego rozwiązania. Pokaż ją. -------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 1 Dołączył: 6.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Cała funkcja. Szuka najpierw początkowego znacznika, następnie końcowego, a później podmienia wartości tylko w tym fragmencie między przedziałami. Niestety przy dużej ilości danych nie sprawdza się. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 1 Dołączył: 6.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Wykonuję operację (substr_replace) na dużej ilości danych, i kiedy wartość podmian dochodzi do ok 10000, skrypt się zatrzymuje na ok 5 sek, a następnie idzie dalej. Czy można pominąć jakoś te pauzy ? |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Przekazujesz do funkcji całą zawartość pliku w postaci jednej zmiennej $data ? Lepiej czytać plik linia po linii i obrabiać linia po linii, będzie szybciej. Zastosowanie wyrażeń regularnych i preg_match_all raczej nie bedzie szybsze w tym przypadku, ale mogę się mylić.
Ten post edytował darko 11.01.2010, 14:27:24 -------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Połączyłem tematy, bo dotyczą tego samego. Następnym razem jak masz nadal problem z czymś, to nie zaczynaj nowego tematu, tylko kontynuuj w aktualnie posiadanym
Facet... napisz po ludzku jak wygląda problem, czyli napisz: 1. Jak wygląda pełen string 2. Jak wygląda znacznik To co wyżej dałeś niewiele mówi Podejrzewam jednak, że właśnie wynalazłeś koło, bo istnieją takie funkcje jak http://pl2.php.net/manual/en/function.str-replace.php i http://pl2.php.net/manual/en/function.preg-replace.php Od nich zacznij ![]() Pozdrawiam -------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 22:48 |