Как усеч нормально файл ?

  • Автор темы Автор темы Stan777
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
S

Stan777

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

а еще?
 
А мне понравился вот такой прием:
Код:
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;
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab