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

Тема в разделе "Perl программирование", создана пользователем Stan777, 24 янв 2007.

Статус темы:
Закрыта.
  1. Stan777

    Stan777 Гость

    Нужно удалить пустое место за текстом как это лучше сделать? усекаю файл функцией truncate она оставляет много дерьма за собой. Что делать ?
     
  2. _serg_

    _serg_ Гость

    truncate усекает файл до заданного размера. она не смотрит есть ли там мустое место или нет
     
  3. Stan777

    Stan777 Гость

    Это уж точно, а мне нужно чтобы пробелы любой длины в конце текстового файла отрезались, что делать?, может у кого-то есть быстрый ответ :). Пока я думать не начал...
     
  4. Stan777

    Stan777 Гость

    я в книге рецептов нашел целых два способа решения этой задачи!
     
  5. _serg_

    _serg_ Гость

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

    а еще?
     
  6. Stan777

    Stan777 Гость

    А мне понравился вот такой прием:
    Код (Text):
    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;
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей