![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Можно ли отрезать кусок от файла без копирования его содержимого? [D5, D7, Win2k]
AlexAlex © (2006-06-18 20:53:00)Для передачи данных планируется дописывать к файлу дополнительную информацию (конверт). Перед доставкой файла к пользователю этот конверт надо удалить. Можно ли это сделать без того, чтобы копировать часть файла (конверт маленький, а файл может быть произвольного размера)? Можно ли дописать информацию в начало существующего файла без потерь данных в нем (из начала конверт лучше читать и шансов, что он придет больше)?
AlexAlex (2006-06-20 10:22:00) [1]Большое спасибо за ответы
Verg (2006-06-20 08:54:00) [2]
> AlexAlex (19.06.06 13:32) [5]
> Как удалить
> данные из конца файла?
Deletes all the records after the current file position.
Unit
System
Category
I/O routines
procedure Truncate(var F);
Description
Call Truncate to cause the current file position to become end-of-file(Eof(F) is True).
F is a file variable of any type except a text file. Truncate does not work on text files. F must be open.
Leonid Troyanovsky (2006-06-19 18:16:00) [3]
> Fay © (19.06.06 16:33) [11]
> CreateFile, SetFilePointer, SetEndOfFile, CloseHandle
См. также TFileStream.Size.
--
Regards, LVT.
AlexAlex (2006-06-19 18:08:00) [4]To Сергей М.>Так я же должен проверить переданные параметры.
To Fay> Большое спасибо, то что нужно
Fay (2006-06-19 16:33:00) [5]2 AlexAlex (19.06.06 13:32) [5]
> Как удалить данные из конца файла?
CreateFile, SetFilePointer, SetEndOfFile, CloseHandle
Сергей М. (2006-06-19 16:26:00) [6]
> AlexAlex (19.06.06 16:20) [8]
> с разработчиком сервера можно договориться: он сделает так,
> как я попрошу
Вот и попроси его не слать эту хрень, которую ты собрался "отрезать" и которая тебе как клиенту нафих не нужна.
Иными словами - согласуй протокол информационного обмена.
AlexAlex (2006-06-19 16:21:00) [7]Я получаю файл по IDFTP, как можно пропустить часть данных?
AlexAlex (2006-06-19 16:20:00) [8]Клиента (получателя), но с разработчиком сервера можно договориться: он сделает так, как я попрошу
Сергей М. (2006-06-19 16:18:00) [9]
> AlexAlex
Ты какую сторону реализуешь-то - сторону клиента ? сторону сервера ? обе ?
Плохиш (2006-06-19 13:52:00) [10]
> AlexAlex (19.06.06 13:32) [5]
В качестве ответа используем новую редакцию последнего предложения из [4] - "При передаче пропускай свою дополнительную информацию и не передавай её".
AlexAlex (2006-06-19 13:32:00) [11]Принимаю не я. Мне этот файл приходит по FTP. Требование самостоятельного формирования и проверки (помимо того, что дает TCP/IP) контрольной суммы забито в ТЗ. Как удалить данные из конца файла? Это не клиент-банк.
Slym (2006-06-19 04:40:00) [12]Лучше заголовок вначале:
размер заголовка, CRC - обязательный парм.
данные заголовка - необязат.
размер, CRC данных - обязательный парм.
сами данные - необязат.
При приеме пропускай заголовок и не записывай
tesseract (2006-06-18 21:33:00) [13]> Хотя это справедливо, если все операции на диске... а так
> - никто не мешает отправить то, что надо, пропустив конверт.
ничто не мешает проверять конверт при передаче по сети, но не сохранять его в файл. Ещё практичнее реализовать разбиение по блокак и по каждому высчитывать CRC - так можно оргнанизовать докачку.
ЗЫ: не очередной клиент-банк случайно?
Virgo_Style (2006-06-18 21:04:00) [14]Хотя это справедливо, если все операции на диске... а так - никто не мешает отправить то, что надо, пропустив конверт.
Virgo_Style (2006-06-18 21:01:00) [15]писать и удалять удобнее в конец, imho.