Нужно удалить пустое место за текстом как это лучше сделать? усекаю файл функцией truncate она оставляет много дерьма за собой. Что делать ?
_serg_
24:01:2007, 15:35
truncate усекает файл до заданного размера. она не смотрит есть ли там мустое место или нет
Stan777
24:01:2007, 19:16
Цитата(_serg_ @ 24:01:2007, 18:35 )
truncate усекает файл до заданного размера. она не смотрит есть ли там мустое место или нет
Это уж точно, а мне нужно чтобы пробелы любой длины в конце текстового файла отрезались, что делать?, может у кого-то есть быстрый ответ . Пока я думать не начал...
Stan777
25:01:2007, 07:13
Цитата(_serg_ @ 24:01:2007, 18:35 )
truncate усекает файл до заданного размера. она не смотрит есть ли там мустое место или нет
я в книге рецептов нашел целых два способа решения этой задачи!
_serg_
25:01:2007, 09:28
хм... можно читать fseek-ом файл с конца и как только попадется первый непробельный символ, рассчитать новую длину файла и сделать ему truncate если файл не очень большой (менее мегабайта, например) - можно считать его в переменную, вытереть пробельные символы в конце и залить его обратно - это с десяток строк на все
а еще?
Stan777
25:01:2007, 19:15
А мне понравился вот такой прием:
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;
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.