krzychoocpp napisał: Witam, z tego co wiem nie ma do tego automatu. Musisz przepisać cały plik pomijając linijkę wiktora. Jeśli to ma być wykorzystywane na dużych plikach, to pomyśl o bazie danych lub dodaniu do każdej linijki pola oznaczającego czy jest ona "usunięta", dopiero po jakimś czasie plik byłby kompaktowany.
Pozdrawiam, Krzysztof.
Właśnie wpadłem na dość ciekawy pomysł. Jak zadziała to się pochwalę.
Jeśli jednak macie coś ciekawego to chętnie skorzystam
Dodano po 1 [godziny] 20 [minuty]: No więc udało się
Plik z danymi "plik.txt":
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|5
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|6
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|7
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|8
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|9
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|10
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|11
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|12
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|13
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|14
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|15
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|16
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|17
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|18
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|19
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|20
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|21
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|22
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|23
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|24
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|25
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|26
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|27
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|28
Plik programu PHP "index.php":
<?
// ODCZYTANIE DANYCH Z PLIKU CZASOWEGO
$zmienna = 17; // ustalenie warunku wpływającego na usunięcie rekordu
$dane=file("plik.txt"); // wczytywanie zawartości pliku do tablicy
$plik_dane = "";
$dlugosc = count($dane); // sprawdzanie ilości elementów tablicy
for($i=0;$i<$dlugosc;$i++)
{
$line_dane = explode("|^|", $dane[$i]); // dzielenie elem. tablicy na dane oddzielone znacznikiem |^|
$rekord = $line_dane[7]; // przypisywanie zmiennej wartości poddawanej sprawdzeniu
if ($rekord <> $zmienna) // sprawdzanie, czy $zmienna różni się od 7 wartości rekordu
{
$plik_dane = $plik_dane.$dane[$i]; // dopisywanie do zmiennej kolejnych rekordów z wykluczeniem usuwanego
}
}
// ZAPISANIE NOWYCH DANYCH DO PLIKU "plik1.txt"
$link = "plik1.txt";
$file=fopen($link, "w");//otwieranie nowego pliku z zamazaniem danych
flock($file, 2); //blokowanie do zapisu
fwrite($file, $plik_dane); //zapis danych do pliku
flock($file, 3); //odblokowanie po zapisie
fclose($file);
?>
A oto wynik - nowy plik "plik1.txt" utworzony przez program, w którym brakuje rekordu z wartością 17:
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|5
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|6
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|7
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|8
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|9
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|10
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|11
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|12
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|13
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|14
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|15
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|16
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|18
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|19
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|20
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|21
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|22
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|23
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|24
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|25
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|26
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|27
poniedziałek|^|wtorek|^|środa|^|czwartek|^|piątek|^|sobota|^|niedziela|^|28
Wszystko działa sprawnie i szybko