Zestaw pomocnych funkcji do operacji na plikach tekstowych
Wolverine
Poniżej przedstawiam zbiór funkcji do łatwej edycji plików txt. Myśle, że funkcji nie trzeba tłumaczyć.
function file_DeleteLine ($filename, $index) {
//Usuwa linie z pozycji $index
$file = file ($filename);
$fp = fopen ($filename, "w");
flock($fp, LOCK_EX);
for( $w = 0; $w < count($file); $w++ )
{
if ($index <> $w)
fwrite ($fp, $file[$w]);
}
flock($fp, LOCK_UN);
fclose($fp);
}
function file_UpdateLine ($filename, $index, $line) {
//Zamienia linie w pozycji $index na ciag z $line
$file = file ($filename);
$file[$index] = $line . "\r\n";
$fp = fopen ($filename, "w");
flock($fp, LOCK_EX);
for( $w = 0; $w < count($file); $w++ )
{
fwrite ($fp, $file[$w]);
}
flock($fp, LOCK_UN);
fclose($fp);
}
function file_GetLine ($filename, $index) {
//Podaje linie z pozycji $index
$file = file ($filename);
$line = $file[$index];
//$line = str_replace ("\r\n", '', $line);
return $line;
}
function file_LinesCount ($filename) {
//Podaje ilosc lini w pliku
$file = file ($filename);
return count ($file);
}
function file_ReplaceLines ($filename, $from, $to) {
//Zamienia miejscami linie z pozycji $from i $to
$file = file ($filename);
$line = $file[$from];
$file[$from] = $file[$to];
$file[$to] = $line;
$fp = fopen ($filename, "w");
flock($fp, LOCK_EX);
for( $w = 0; $w < count($file); $w++ )
{
fwrite ($fp, $file[$w]);
}
flock($fp, LOCK_UN);
fclose($fp);
}
function file_InsertLine ($filename, $line) {
//Dodaje linie na koncu pliku
$fp = fopen ($filename, "a");
flock($fp, LOCK_EX);
fputs ($fp, $line . "\r\n");
flock($fp, LOCK_UN);
fclose ($fp);
}
function file_InsertLineOnTop ($filename, $line) {
//Dodaje linie na poczatku pliku
$fp = fopen ($filename, "r");
$old_file = fread ($fp, filesize ($filename));
fclose ($fp);
$fp = fopen ($filename, "w");
flock ($fp, LOCK_EX);
$file = $line . "\r\n" . $old_file;
$file = str_replace ("\r\n\r\n", "\r\n", $file);
fputs ($fp, $file);
flock ($fp, LOCK_UN);
fclose ($fp);
}
function file_MoveLineToTop ($filename, $index) {
//Przenosi linie z pozycji $index na gore pliku, przesuwajac caly plik nizej
$line = file_GetLine($filename, $index);
file_DeleteLine($filename, $index);
file_InsertLineOnTop($filename, $line);
}
function file_SaveToFile ($filename, $something) {
//Zapisuje sciah $something do pliku
$fp = fopen ($filename, "w");
flock($fp, LOCK_EX);
fputs ($fp, $something);
flock($fp, LOCK_UN);
fclose ($fp);
}
function file_ReadFromFile ($filename) {
//Odczytuje ciag z pliku
$fp = fopen ($filename, "r");
$file = fread($fp, filesize ($filename));
fclose ($fp);
return $file;
}
Gotowe :)
browar dla Wolverina :-) przyda sie, ale dodaj komentarze
Przenosi na gore ;)
Dobre, choc przydalyby sie komentarze, np. co robi funcja file_MoveLineToTop <- Przenosi linie na sama gore, czy 1 index w gore?
Ale ogolnie fajne