![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 372 Pomógł: 2 Dołączył: 10.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
mam plik *.txt, który wygląda mniej więcej tak:
2.0 1992.11 1975.10 22 1.1 1992.11 1975.10 35 1.1 SLE 1972.11 1975.10 40 &1300 MARATHON 1973.109 1975.08 42 ... Pytania: -jak /przy pomocy jakiej funkcji dodać na początku każdego wiersza znak "$" (ale dodać tylko w tych wierszach, które nie mają znaku "&" na początku) -jak usunąć wszystkie nadmiarowe spacje powyżej jednej - za pomocą jakiej funkcji dodać przed ostatnimi numerami w rzędzie czyli przed 22, 35, 40, 42 znak ":", jak pomiędzy datami dodać znak "-"? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Ciekawe...
Ciekawe, czy posiadając plik o rozmiarze kilkuset MiB użyjesz tego samego. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Ciekawe... Ciekawe, czy posiadając plik o rozmiarze kilkuset MiB użyjesz tego samego. Podejrzewam, że przy pliku o rozmiarze kilkudziesięciu MiB byłyby już problemy, a przetwarzanie plików o rozmiarze kilkuset MiB dla obu metod byłoby czasochłonne, choć z pewnością funkcja file() wygrałaby ewentualną rywalizację. Osobiście przerzuciłbym dane do bazy danych. Wracając do tematu:
We wszystkich wzorcach zamień \s na \040, jak radził bastard13, a nie będzie problemów ze "zjedzonym" znakiem nowej linii. Swoją drogą mój poprzedni kod nie działa do końca prawidłowo (jeszcze nie wiem dlaczego). Natomiast do usunięcia pustych linii możemy również wykorzystać funkcję preg_replace():
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 20:56 |