Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.30;
Скачать: CL | DM;

Вниз

Можно ли отрезать кусок от файла без копирования его содержимого?   Найти похожие ветки 

 
AlexAlex   (2006-06-18 20:53) [0]

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


 
Virgo_Style ©   (2006-06-18 21:01) [1]

писать и удалять удобнее в конец, imho.


 
Virgo_Style ©   (2006-06-18 21:04) [2]

Хотя это справедливо, если все операции на диске... а так - никто не мешает отправить то, что надо, пропустив конверт.


 
tesseract ©   (2006-06-18 21:33) [3]

> Хотя это справедливо, если все операции на диске... а так
> - никто не мешает отправить то, что надо, пропустив конверт.

ничто не мешает проверять конверт при передаче по сети, но не сохранять его в файл. Ещё практичнее реализовать разбиение по блокак и по каждому высчитывать CRC -  так можно оргнанизовать докачку.

ЗЫ: не очередной клиент-банк случайно?


 
Slym ©   (2006-06-19 04:40) [4]

Лучше заголовок вначале:
размер заголовка, CRC - обязательный парм.
данные заголовка - необязат.
размер, CRC данных - обязательный парм.
сами данные - необязат.

При приеме пропускай заголовок и не записывай


 
AlexAlex   (2006-06-19 13:32) [5]

Принимаю не я. Мне этот файл приходит по FTP. Требование самостоятельного формирования и проверки (помимо того, что дает TCP/IP) контрольной суммы забито в ТЗ. Как удалить данные из конца файла? Это не клиент-банк.


 
Плохиш ©   (2006-06-19 13:52) [6]


> AlexAlex   (19.06.06 13:32) [5]

В качестве ответа используем новую редакцию последнего предложения из [4] - "При передаче пропускай свою дополнительную информацию и не передавай её".


 
Сергей М. ©   (2006-06-19 16:18) [7]


> AlexAlex


Ты какую сторону реализуешь-то  - сторону клиента ? сторону сервера ? обе ?


 
AlexAlex   (2006-06-19 16:20) [8]

Клиента (получателя), но с разработчиком сервера можно договориться: он сделает так, как я попрошу


 
AlexAlex   (2006-06-19 16:21) [9]

Я получаю файл по IDFTP, как можно пропустить часть данных?


 
Сергей М. ©   (2006-06-19 16:26) [10]


> AlexAlex   (19.06.06 16:20) [8]


> с разработчиком сервера можно договориться: он сделает так,
>  как я попрошу


Вот и попроси его не слать эту хрень, которую ты собрался "отрезать" и которая тебе как клиенту нафих не нужна.

Иными словами - согласуй протокол информационного обмена.


 
Fay ©   (2006-06-19 16:33) [11]

2 AlexAlex   (19.06.06 13:32) [5]
> Как удалить данные из конца файла?

CreateFile, SetFilePointer, SetEndOfFile, CloseHandle


 
AlexAlex   (2006-06-19 18:08) [12]

To Сергей М.>Так я же должен проверить переданные параметры.
To Fay> Большое спасибо, то что нужно


 
Leonid Troyanovsky ©   (2006-06-19 18:16) [13]


> Fay ©   (19.06.06 16:33) [11]

> CreateFile, SetFilePointer, SetEndOfFile, CloseHandle


См. также TFileStream.Size.

--
Regards, LVT.


 
Verg ©   (2006-06-20 08:54) [14]


> 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.


 
AlexAlex   (2006-06-20 10:22) [15]

Большое спасибо за ответы



Страницы: 1 вся ветка

Текущий архив: 2006.07.30;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.028 c
2-1152692183
dima_kds
2006-07-12 12:16
2006.07.30
Rave Report


15-1151405664
ArtemESC
2006-06-27 14:54
2006.07.30
Мышак в DrDos e..


4-1144917600
Flagman
2006-04-13 12:40
2006.07.30
электронный ключ-таблетка


1-1150451941
oleg444
2006-06-16 13:59
2006.07.30
Не могу отладить DLL


3-1148381328
HelpMe
2006-05-23 14:48
2006.07.30
Ошибка с TSocketConnection