Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Аналог Truncate для TFileStream 
:(
    Опции темы
Dapo
Дата 6.6.2003, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 18.4.2002

Репутация: нет
Всего: 1



Как с помощью TFileStream можно обрезать файл, аналогично ф-ии Truncate(F)?
PM MAIL   Вверх
Dapo
Дата 8.6.2003, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 18.4.2002

Репутация: нет
Всего: 1



Неужели никто не знает? Вот подробнее. что я делаю: Для чтения и записи в файл я использую TFileStream, теперь возникла необходимость удаления блока из файла. Алгоритм используется следующий: курсор переводиться на конец удаляемого блока, затем все что после курсора копируется выше на размер удаляемого блока, ну и последнее - файл обрезается на количество байт удаленного блока. Так как обрезать то?
PM MAIL   Вверх
Dapo
Дата 8.6.2003, 02:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 18.4.2002

Репутация: нет
Всего: 1



Сейчас проблему обхожу так: создаю Temp-файл в который записываются нужные блоки, удаляю старый файл и переименовываю Temp-файл в исходное название.
PM MAIL   Вверх
Dapo
Дата 10.6.2003, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 18.4.2002

Репутация: нет
Всего: 1



Люди! Никто с файлами не работал что ли? Или только писать и читать приходилось, а удалять из файла нет? Ведь вопрос-то скорее всего пустяковый! Неужели все так тупо и делается? Может в АПИ что-то есть? Как тот-же truncate работает?
PM MAIL   Вверх
Перчес_Анонимус
Дата 1.8.2004, 23:32 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











почему бы и не сделать это трункэйтом?
объявляешь переменную 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 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 30.9.2003
Где: Saint-Petersburg

Репутация: 5
Всего: 4



Код
 F: TFileStream;
...
 F.Position := 12345;
 SetEndOfFile(F.Handle);

--------------------
/DVA
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0416 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.