Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Nadpisanie jednej linii wewnątrz pliku
Fazzzzi
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 11.11.2009

Ostrzeżenie: (0%)
-----


Witam.

Potrzebuje patentu na nadpisanie linii w pliku, który przykładowo może wyglądać tak (zamierzam tego używać do obsługi ankiet na stronie):
Cytat
Dlaczego wróbelek?
bo tak
10
inna odpowiedz
3
bo ma jedną nóżkę bardziej
123
Gdzie pierwsza linia to treść pytania, a każde kolejne to możliwa odpowiedz i pod spodem ilość głosów. Problem pojawia się w edycji, bo wiem jak się ustawić kursor w pliku na konkretną linię, ale nie mam pojęcia jak ją nadpisać.
Nie wchodzi w grę zmiana sposobu obsługi ankiet - pliki muszą być.

Jest w stanie ktoś mi pomóc?
Z góry dziękuję za zainteresowanie (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Maxik
post
Post #2





Grupa: Zarejestrowani
Postów: 726
Pomógł: 129
Dołączył: 10.01.2008
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Funkcją file wczytujesz cały plik do tablicy, nadpisujesz wartość pod danym kluczem. Potem implode i zapis do pliku.
Go to the top of the page
+Quote Post
erix
post
Post #3





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Jasne, będzie miał plik 5 GiB, to też file?

file + implode, to najgorsze rozwiązanie, jakiego można tu użyć - pamięciożerne.

Cytat
Gdzie pierwsza linia to treść pytania, a każde kolejne to możliwa odpowiedz i pod spodem ilość głosów. Problem pojawia się w edycji, bo wiem jak się ustawić kursor w pliku na konkretną linię, ale nie mam pojęcia jak ją nadpisać.

Otwierasz dwa pliki -> jeden źródłowy, drugi - tymczasowy.

Przejeżdżasz pętlą przez pierwszy (czytając linia po linii przez fgets). Zrób sobie wcześniej zmienną licznika, abyś wiedział, który wiersz jest bieżąco przetwarzany. W tej samej pętli zapisujesz do drugiego pliku - jeśli nie jest to poszukiwana linia -> po prostu zapisz ją do drugiego pliku.

Jeśli poszukiwana -> wpisz do drugiego tę, którą chcesz nadpisać.

Na samym końcu podmieniasz pierwszy plik z drugim.

Ale w żadnym wypadku nie przez file + implode - to będzie zabójcze dla RAM-u.
Go to the top of the page
+Quote Post
Fazzzzi
post
Post #4





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 11.11.2009

Ostrzeżenie: (0%)
-----


Hmmm, to co napisał Maxik w przypadku moich niewielkich plików (kilkaset bajtów) będzie najlepszą metodą i nie wymaga praktycznie wysiłku, a to w moim przypadku teraz atut (dwa dni na oddanie projektu (IMG:style_emoticons/default/smile.gif) ).

Erix - dzięki za wskazanie najpoprawniejszego rozwiązania, kolejny łyk wiedzy (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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: 22.08.2025 - 12:26