![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Извлечение файла из несжатого архива. [D7, XP]
AlexanderMS © (2006-06-02 16:51:00)Подскажите, пожалуйста, как мне "взять" часть байтов из некого нетипизированного файла и сохранить эту часть как отдельный файл (т. е. извлечь из несжатого архива). Но этих байтов столько, что выдаётся ошибка:
---------------------------
Project CSFEditor.exe raised exception class EOutOfMemory with message 'Out of memory'. Process stopped. Use Step or Run to continue.
---------------------------
Как быть? Могу привести код, но думаю, что можно сделать лучше. Я пробовал считать string из первого и сохранить её во второй через TMemoryStream.
AlexanderMS (2006-06-02 17:11:00) [1]
> Рамиль © (02.06.06 17:05) [3]
Благодарю, сейчас попробую.
Рамиль (2006-06-02 17:05:00) [2]Эх...
function CopyFrom(Source: TStream; Count: Int64): Int64;
для чего по твоему?
Устанавливаешь в исходном потоке Position на нужный байт, потом вызываешь CopyFrom во втором с нужным количеством байт.
AlexanderMS (2006-06-02 17:01:00) [3]
> TFileStream
Тут в общем-то то же самое получается: тоже Stream, а потом сохраняется через SaveToFile. Мне нужно как-то "вырезать" из одного файла и "вставить" в пустой другой, а затем его сохранить. Но начало "вырезки" и "конец" могут быть в любых местах в первом файле. Read даёт OutOfMemory. Вот, не знаю как...
Рамиль (2006-06-02 16:55:00) [4]TFileStream