Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.07.30;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.011 c
2-1152788121
rra
2006-07-13 14:55
2006.07.30
Определение нажатой кнопки


2-1152397347
Asail
2006-07-09 02:22
2006.07.30
Проблема с полем в классе


15-1151478857
learner
2006-06-28 11:14
2006.07.30
Автоматическая авторизация в домашней локальной сети


2-1152674805
lllEl
2006-07-12 07:26
2006.07.30
Компиляция проекта


2-1152607440
zdm
2006-07-11 12:44
2006.07.30
dbTreeView





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский