![]() |
![]() ![]() |
![]() |
![]()
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? 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ć.bo tak 10 inna odpowiedz 3 bo ma jedną nóżkę bardziej 123 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) |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 726 Pomógł: 129 Dołączył: 10.01.2008 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
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. |
|
|
![]()
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) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 12:26 |