| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Аналог Truncate для TFileStream |
| Автор: Dapo 6.6.2003, 09:41 |
| Как с помощью TFileStream можно обрезать файл, аналогично ф-ии Truncate(F)? |
| Автор: Dapo 8.6.2003, 00:49 |
| Неужели никто не знает? Вот подробнее. что я делаю: Для чтения и записи в файл я использую TFileStream, теперь возникла необходимость удаления блока из файла. Алгоритм используется следующий: курсор переводиться на конец удаляемого блока, затем все что после курсора копируется выше на размер удаляемого блока, ну и последнее - файл обрезается на количество байт удаленного блока. Так как обрезать то? |
| Автор: Dapo 8.6.2003, 02:18 |
| Сейчас проблему обхожу так: создаю Temp-файл в который записываются нужные блоки, удаляю старый файл и переименовываю Temp-файл в исходное название. |
| Автор: Dapo 10.6.2003, 10:22 |
| Люди! Никто с файлами не работал что ли? Или только писать и читать приходилось, а удалять из файла нет? Ведь вопрос-то скорее всего пустяковый! Неужели все так тупо и делается? Может в АПИ что-то есть? Как тот-же truncate работает? |
| Автор: Перчес_Анонимус 1.8.2004, 23:32 |
| почему бы и не сделать это трункэйтом? объявляешь переменную file of byte в нужный момент закрываешь ТФайлСтрим <TFileStream>.free дальше - assignFile(<file of byte>,<your filename>); seek(<file of byte>,<int64>); truncate(... блоки, естессно, проще и быстрей сместить Стримом, обрезать - так. ;) |
| Автор: Dmitry V.Abramov 2.8.2004, 00:26 | ||
|