Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyszukiwanie i usuwanie, danych z pliku
katomasz
post
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Jak stworzyć kod, który znajdzie wyraz w pliku i usunie cały wiersz z tym wyrazem?
Odstępy pomiędzy wyrazami tworzsone są tabulatorem, natomiast pomiędzy wierszami znakami nowego wiersza i powrotem karetki.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
katomasz
post
Post #2





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Niestety, ale to też nie działa. Jeżeli są dwie linie to jest to dobrze, lecz, gry pojawią się trzy lub więcej usuwa albo wszystkie od znalezionej, albo wszystkie oprócz ostatniej (nie ma reguły).
Na chwilę obecną mam taki kod
  1. <?php
  2.  
  3. $usun=$_GET['usun'];
  4. $plik=file(&#092;"nazwy.dat\");
  5. $licznik=count($plik);
  6.  for ($i=0; $i<$licznik; $i++)
  7.  {
  8. $wiersz=explode(&#092;"t\", $plik[$i]);
  9. $usun1=trim($wiersz[0]);
  10. if ($usun1==$usun)
  11.  {
  12. $usun=$usun.&#092;"rn\";
  13. $file=fopen(&#092;"nazwy.dat\", \"r+\");
  14. $file1=fread($file, filesize(&#092;"nazwy.dat\"));
  15. $zamiana=str_replace($usun, &#092;" \", $file);
  16. fclose($file);
  17.  }
  18. else
  19. {
  20. print $usun.&#092;" - \";
  21. print &#092;"to nie ten wiersz\";
  22. print &#092;" - \".$wiersz[0].\"<BR>\";
  23. }
  24.  }
  25.  
  26. ?>

wszystko działa oprócz oczywiście usuwania z pliku ciągu $usun (zamiany na spację). Podczas porównania warunek jest spełniany i wchodzi w warunek. Ale niestety nie usuwa. Nie chcę przepisywać całego pliku bez tej właśnie linii, ponieważ nie wydaje mi się to ekonomiczne.

Ten post edytował katomasz 31.05.2005, 06:35:00
Go to the top of the page
+Quote Post

Posty w temacie


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: 4.10.2025 - 16:06