Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Можно ли отрезать кусок от файла без копирования его содержимого? [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.


Наверх

Титульная страница Поиск, карта сайта Написать письмо