Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как усеч нормально файл ?
Форум программистов > Интернет и сети > Web-программирование > Perl программирование
Stan777
Нужно удалить пустое место за текстом как это лучше сделать? усекаю файл функцией truncate она оставляет много дерьма за собой. Что делать ?
_serg_
truncate усекает файл до заданного размера. она не смотрит есть ли там мустое место или нет
Stan777
Цитата(_serg_ @ 24:01:2007, 18:35 ) *
truncate усекает файл до заданного размера. она не смотрит есть ли там мустое место или нет

Это уж точно, а мне нужно чтобы пробелы любой длины в конце текстового файла отрезались, что делать?, может у кого-то есть быстрый ответ smile.gif. Пока я думать не начал...
Stan777
Цитата(_serg_ @ 24:01:2007, 18:35 ) *
truncate усекает файл до заданного размера. она не смотрит есть ли там мустое место или нет

я в книге рецептов нашел целых два способа решения этой задачи!
_serg_
хм...
можно читать fseek-ом файл с конца и как только попадется первый непробельный символ, рассчитать новую длину файла и сделать ему truncate
если файл не очень большой (менее мегабайта, например) - можно считать его в переменную, вытереть пробельные символы в конце и залить его обратно - это с десяток строк на все

а еще?
Stan777
А мне понравился вот такой прием:
open(FH,"+<$old") or die "cant open $!\n";
                          # определим размер и сделаем усечение файла.
while(<FH>){
$addr=tell(FH) unless eof(FH);
}
truncate(FH, $addr) or die "cant truncate $!\n";
close(FH);
exit;
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.