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

Вниз

удаление информации из файла   Найти похожие ветки 

 
Zendor ©   (2004-03-23 11:50) [0]

Какие существуют способы удаление из файлов произвольной длины некоторого количества байт в проекте на DElphi 8 с Windows Forms.


 
Fay ©   (2004-03-23 11:57) [1]

С сохранением работоспособности?


 
GLFox   (2004-03-23 11:57) [2]

А причем тут собственно Delphi, для работы с произвольным фрагментом файла можно использовать WinAPI"шную штучку, которая называется Memory Mapped Files


 
Тимохов ©   (2004-03-23 11:58) [3]

один из способов - перезапись нужных байт и пропуск не нужных байт в новом файле


 
Ztndor   (2004-03-23 12:08) [4]

а если без применения WinApi, и с сохранением работоспособности?


 
Тимохов ©   (2004-03-23 12:11) [5]

а какая рабоспособность у файла произвольной динны?


 
Zendor ©   (2004-03-23 12:13) [6]

в зависимости от ситуации, хотя мне нужно дя работы с базой произвольной длины, куда записываются и откуда удаляется информация


 
Тимохов ©   (2004-03-23 12:16) [7]

в исходном вопросе вы спрашивали как удалить, один из способов приведен в 3.

как сохранить работоспособность - это уже ваше дело, вряд ли вам в этом может кто-то помочь по столь скудной информации, которую вы привели.


 
Rouse_ ©   (2004-03-23 12:24) [8]

Для сохранения работоспособности ИМХО нужно знать формат файла...


 
Zendor ©   (2004-03-23 12:26) [9]

способ номер три скорее всего не подходиттак как как все пишется на .net и для .net

а работоспособность это чтоб файл загружался да время затрачиваемое на удаление не было слишком высоким вот и спрашиваю про разные способы


 
Тимохов ©   (2004-03-23 12:29) [10]


> Zendor ©   (23.03.04 12:26) [9]

до нета пока не добрался, но сомневаюсь, чтобы там нельзя было создавать файлы.

про время: зависит от размера файла. и что такое слишком высокое? какое для этого ваше субъективное (или еще лучше объективное) мерило?


 
Zendor ©   (2004-03-23 12:38) [11]

единственный способ который я знаю копирование в другой файл всего этого не копирую некоторый кусок, но при большах размерах файлов это...


 
Serginio666   (2004-03-23 12:42) [12]

Все также, копирование через буффер массива байт с записью в файл со смещением количества удаляемых байт с усечением длины файла на это количество. Смотри
System.IO.FileStream и его методы

public function Read([in,out] array: array of Byte; offset: Integer; count: Integer): Integer; override;

public procedure Write(array: array of Byte; offset: Integer; count: Integer); override;

public procedure SetLength(value: Int64); override;


 
Zendor ©   (2004-03-23 12:50) [13]

> Serginio666

но даже если мы сделаем массив под размер кластера на диске при больших объемах файлов это...


 
TUser ©   (2004-03-23 13:53) [14]

Тут в каком-то посте автор упомянул, что нужна база. Так может сразу для базы данных и писать. И пусть BDE/ADO/dbE/... думает, как там чего-то удалять.


 
Serginio666   (2004-03-23 15:13) [15]

>>> Zendor ©   (23.03.04 12:50) [13]
Нужно размер буффера подбирать по кэш процессора, а не размер кластера.
У тебя есть другие предложения????


 
Zendor ©   (2004-03-23 16:12) [16]

> TUser
нет стоит другая задача

> Serginio666
а как под кэш,  ведь в кэше пишется и другая инфа?  под размер кластера я слышал для более быстрой работы с жестким диском


 
Тимохов ©   (2004-03-23 16:14) [17]


> Zendor ©   (23.03.04 16:12) [16]

у вас есть проблемы с быстродейтвием?


 
Serginio666   (2004-03-23 17:19) [18]

>>Zendor ©   (23.03.04 16:12) [16]
http://www.rsdn.ru/Forum/Message.aspx?mid=556030&only=1
http://www.rsdn.ru/Forum/Message.aspx?mid=556822&only=1
http://www.rsdn.ru/Forum/Message.aspx?mid=559132&only=1
http://www.rsdn.ru/Forum/Message.aspx?mid=562937&only=1



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

Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.043 c
1-1080138321
HydraMarat
2004-03-24 17:25
2004.04.11
Как получить указатель на public свойства/методы


7-1076237725
I_V_N_I_S_H
2004-02-08 13:55
2004.04.11
Перехват клавиш


1-1079741670
ё-лка
2004-03-20 03:14
2004.04.11
OLE 1C


1-1082476993
PeloR
2004-04-20 20:03
2004.04.11
Вопрос по компоненту Chart


4-1079082244
saska
2004-03-12 12:04
2004.04.11
LoadMenu





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский