Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] skasowanie co drugą linijke w pliku i zapisanie zmiany
maryaan
post
Post #1





Grupa: Zarejestrowani
Postów: 380
Pomógł: 2
Dołączył: 5.01.2007

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


to ze jestes zielona jeszcze nie upowaznia Cie do crosspostingu na dzien dobry :] a jesli chodzi o to kasowanie co drugiej linii to sprawa jest bardzo prosta, wystarczy funkcja file a pozniej zapis do pliku otrzymanej tablicy, oczywiscie z pominieciem parzystych elementow (lub nieparzystych - na to samo wyjdzie)
Go to the top of the page
+Quote Post
fokusa
post
Post #2





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 30.03.2007

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


Witam, mam do szkoły zadanie, żeby skasować co drugą linijkę w pliku i zapisać zmiany. Musze zrobić prezentacje krok po kroku jak to sie robi, było by świetnie gdyby nie to, że nie mam pojęcia od czego zacząć, nie znam się na php, ledwo umiem odczytać plik:) Prosze pomóżcie, bo nie wiem co mam zrobić. Bardzo dziekuje z góry za pomoc. (IMG:http://forum.php.pl/style_emoticons/default/blinksmiley.gif)
Go to the top of the page
+Quote Post
Sokal
post
Post #3





Grupa: Zarejestrowani
Postów: 237
Pomógł: 1
Dołączył: 8.02.2007

Ostrzeżenie: (10%)
X----


  1. <?php
  2. $plik = 'plik.txt';  # nazwa pliku
  3. $odczytane = file($plik);
  4. $zero = 'tak';  # czy zapisać pierwszy element tablicy? (parzyste)
  5. $ile = count($odczytane);
  6. if($zero == 'tak')
  7. {
  8. for($i=0;$i<=$ile;$i++)
  9. {
  10. $dziel = $liczba % 2;
  11. if($dziel == 0)
  12.  $tablica[] = $odczytane;
  13. }
  14. }
  15. else if($zero == 'nie')
  16. {
  17. for($i=0;$i<=$ile;$i++)
  18. {
  19. $dziel = $liczba % 2;
  20. if($dziel <> 0)
  21.  $tablica[] = $odczytane;
  22. }
  23. }
  24. ?>

Co drugą wartość masz teraz w $tablica, wystarczy już zapisać (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Powinno działać (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował Sokal 31.03.2007, 07:47:15
Go to the top of the page
+Quote Post
fokusa
post
Post #4





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 30.03.2007

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


Dzięki bardzo za ten kodzik, tylko, że początek jakoś tam rozumiem , ale nie wiem co to ta tablica, no i jak krok po kroku wytłumaczyć innym co do czego służy, jak już wspominałam prawie nic nie umiem. eh No i sory za błędy i kłopoty
Go to the top of the page
+Quote Post
webdice
post
Post #5


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




@Sokal strasznie dużo Ci tego kodu wyszło (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

  1. <?php
  2. $file = file ('file.txt');
  3.  
  4. for ($i = 0; $i < count ($file); $i++)
  5. {
  6. if ($i % 2)
  7. {
  8. $new_file[] = $file[$i];
  9. }
  10. }
  11.  
  12. file_put_contents ('file.txt', $new_file);
  13. ?>


a jeśli chcesz aby liczyło od zera to zmień instrukcje warunkową na
  1. <?php
  2. if (!($i % 2))
  3. ?>


Uważam że skrypt jest bardzo prosty, więc nie będę tłumaczył, a jeśli nie rozumiesz to manual Ci na pewno pomoże.
Go to the top of the page
+Quote Post
fokusa
post
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 30.03.2007

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


Cytat(webdicepl @ 31.03.2007, 13:08:53 ) *
  1. <?php
  2. $file = file ('file.txt');
  3.  
  4. for ($i = 0; $i < count ($file); $i++)
  5. {
  6. if ($i % 2)
  7. {
  8. $new_file[] = $file[$i];
  9. }
  10. }
  11.  
  12. file_put_contents ('file.txt', $new_file);
  13. ?>

tak więc <? to jest otwarcie , to wiem
file to znaczy że otwiera plik, domyśliłam się, tylko z pętlą for nie rozumiem jednego:
czemu zmienna $i jest równa 0 nie może być jeden to jest jakaś różnica? no i ten drugi warunek to juz całkiem bo <count($file); co on daje?
Aha i jeszcze warunek if co zanczy ten %? Że co drugą linijke kasuje? Dzięki że mi pomagacie, jak widzicie sami jestem totalna noga, ja nie wiem jak zrobiłam że mam 4 ze spawdzianów (IMG:http://forum.php.pl/style_emoticons/default/laugh.gif) (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
maryaan
post
Post #7





Grupa: Zarejestrowani
Postów: 380
Pomógł: 2
Dołączył: 5.01.2007

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


dziewczyno rusz glowa (a jak nie pomoze to biustem :] ) (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) w pierwszym poscie masz link do opisu funkcji file http://pl.php.net/file gdzie mozna przeczytac co sie stanie po uzyciu tej funkcji, jesli chodzi o zero to oczywiscie numeracja tablic jest od zera, dlatego ostatni element ma numer o jeden mniejszy niz liczba elementow tablicy.
count jest tu http://pl.php.net/count manual nie gryzie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

btw dlaczego moj post jest pierwszy (IMG:http://forum.php.pl/style_emoticons/default/blink.gif) (IMG:http://forum.php.pl/style_emoticons/default/laugh.gif)
Go to the top of the page
+Quote Post
webdice
post
Post #8


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




  1. <?php
  2. if ($i % 2)
  3. ?>


poczytaj o modulo, jeśli zwróci true zostają wykonane instrukcje w if'ie, dodam że zapis

  1. <?php
  2. $new_file[] = $file[$i];
  3. ?>


dodaje do tablicy $new_file linie z pliku file.txt (w tym przypadku co drugą) z indeksem o jeden większym od poprzedniego zaczynając od zera. Jeśli chcesz zobaczyć jak wygląda tabla $file i $new_file skorzystaj z print_r" title="Zobacz w manualu PHP" target="_manual

Pozdrawiam Piotrek.

Ten post edytował webdicepl 31.03.2007, 23:48:21
Go to the top of the page
+Quote Post
fokusa
post
Post #9





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 30.03.2007

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


Ok już poczytałam, no nie denerwujcie sie na mnie, coś tam niby rozumiem... Juz wiem dzieki bardzo za zadanie. Tylko jeszcze jedno małe pytanie file_put_contents , co to robi? Otwiera .. ale co nowy plik ze zmianami? Tego nie moge nigdzie znaleźć.thx
Go to the top of the page
+Quote Post
maryaan
post
Post #10





Grupa: Zarejestrowani
Postów: 380
Pomógł: 2
Dołączył: 5.01.2007

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


http://pl.php.net/file_put_contents
Go to the top of the page
+Quote Post
fokusa
post
Post #11





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 30.03.2007

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


Dziękuje wszytskim za pomoc, jesteście kochani ( a przedewszystkim za nerwy thx (IMG:http://forum.php.pl/style_emoticons/default/tongue.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: 14.09.2025 - 22:29