Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Wskaźnik pliku, w wybranej pozycji
Coolmax
post 24.06.2006, 14:18:21
Post #1





Grupa: Zarejestrowani
Postów: 168
Pomógł: 0
Dołączył: 12.11.2005
Skąd: Bulowice nearby Wadowice (E), Oświęcim (W)

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


Ach te pliki. Mam problem, czytałem o file, fopen, fseek, fgets, ..., ale nadal nie mogę znaleźć rozwiązania na mój problem. I zastanawiam co było by bardziej użyteczne tablice czy stringi. Czego mam użyć, aby zapisać do pliku tekst, po wybranej (znanej mi) linii, a czego, gdy znam ciąg znaków w poprzedzającej linii. Zależy mi głów. na tym drugim przypadku i przypuszczam, że trzeba załadować cały plik, wyszukać tą frazę i tam umieścić wskaźnik pliku - ale jak?

Ten post edytował Coolmax 24.06.2006, 14:51:40


--------------------
Go to the top of the page
+Quote Post
piotrekkr
post 24.06.2006, 14:30:53
Post #2





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


hmm nie lepiej zaladowac zawartosc pliku do zmiennej i ja przeszukac w poszukiwaniu ciagu znakow i pozniej rozbic zmienna i miedzy rozbite czesci wsadzic nowa zawartosc i pozniej zapisac calosc do pliku??
Go to the top of the page
+Quote Post
Coolmax
post 24.06.2006, 14:36:21
Post #3





Grupa: Zarejestrowani
Postów: 168
Pomógł: 0
Dołączył: 12.11.2005
Skąd: Bulowice nearby Wadowice (E), Oświęcim (W)

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


W sumie tak bo twoim, albo tym co ja chciałem sposobem i tak trzeba załadowac cały plik. No chyba, że jest funkcja, która czyta plik dotąd, aż znajdzie podaną frazę, ale z takim czymś się jeszcze nie spotkałem...


--------------------
Go to the top of the page
+Quote Post
piotrekkr
post 24.06.2006, 14:38:19
Post #4





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


no ja tez jeszcze sie nie spotkalem biggrin.gif poczytaj o funkcjach operujacych na stringach
Go to the top of the page
+Quote Post
-Gość-
post 24.06.2006, 14:40:11
Post #5





Goście







Uwazaj tylko by zmienna nie zajela zbyt duzo bo moze nastapic przeladowanie pamieci i skrypt sie wysypie.
Go to the top of the page
+Quote Post
Coolmax
post 24.06.2006, 14:46:01
Post #6





Grupa: Zarejestrowani
Postów: 168
Pomógł: 0
Dołączył: 12.11.2005
Skąd: Bulowice nearby Wadowice (E), Oświęcim (W)

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


A gdzie mogę znaleźć o wielkości zmiennej? Aktualnie plik ma 4133 B, ale może być większy.


--------------------
Go to the top of the page
+Quote Post
piotrekkr
post 24.06.2006, 14:51:00
Post #7





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


jesli chodzi o dlugosc stringa to strlen() a o plik to chyba filesize()
Go to the top of the page
+Quote Post
em1X
post 24.06.2006, 16:34:55
Post #8





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


jezeli chodzi o zapisanie do pliku wybranej linii (i jezeli te pliki nie przekraczaja rozmiarow powiedzmy 1mb to raczej nie bedzie klopotu)

  1. <?php
  2. function writeLineToFile($filehandle, $filename, $linenum)
  3. {
  4.  if (is_resource($filehandle))
  5.  {
  6. $arr = &file($filename);
  7. fwrite($filehandle, $arr[$linenum]);
  8. unset($arr);
  9.  
  10. return true;
  11.  }
  12.  
  13.  return false;
  14. }
  15.  
  16. // use-case
  17. $fp = fopen("plikDoZapisu.txt", "w");
  18.  
  19. if (writeLineToFile($fp, "odczyt.txt", 10))
  20. {
  21.  echo "Zapisałem do pliku wybraną linię";
  22. }
  23. else echo "Coś się nie udało...";
  24.  
  25. fclose($fp);
  26. ?>


a w przypadku znania tekstu poprzedzającej linii:
  1. <?php
  2. function getLine($file, $txt)
  3. {
  4. $arr = &file($file);
  5. $count = count($arr);
  6. $return = '';
  7.  
  8. for ($i=0; $i<$count; $i++)
  9. {
  10. if (eregi($txt, $arr[$i]))
  11. {
  12. $return = $arr[++$i];
  13. break;
  14. }
  15. }
  16.  
  17. unset($arr);
  18. return $return;
  19. }
  20.  
  21. // plik read.txt:
  22. /*
  23. ala miala
  24. kota a ten
  25. kot mial aids
  26. a poniewaz go kochala
  27. do uspenia oddala
  28. */
  29.  
  30. $fp = fopen('zapis.txt', 'w');
  31. fwrite($fp, getLine('read.txt', 'kota'));
  32. fclose($fp);
  33. ?>


Ten post edytował em1X 24.06.2006, 16:43:54


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post
Coolmax
post 24.06.2006, 17:08:55
Post #9





Grupa: Zarejestrowani
Postów: 168
Pomógł: 0
Dołączył: 12.11.2005
Skąd: Bulowice nearby Wadowice (E), Oświęcim (W)

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


W tym drugim kodzie raczej nie widzę, gdzie mógłbym zapisać, tekst, bo "kota" uzywasz chyba do znalezienia miejsca, a jak dodać tekst? Mogę tego kodu bezpiecznie używać na jednym pliku np. "read.txt"?


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 19:01