From eff63f0e61b5db0faac6a3d4defca88ace6ef6ab Mon Sep 17 00:00:00 2001 From: vkislitsin Date: Mon, 30 Dec 2024 13:03:27 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D0=BB=D0=B8=D0=B7=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D0=BD=D0=BE=20=D0=BF=D0=BE=D1=80=D1=86=D0=B8=D0=BE=D0=BD?= =?UTF-8?q?=D0=BD=D0=BE=D0=B5=20=D1=87=D1=82=D0=B5=D0=BD=D0=B8=D0=B5-?= =?UTF-8?q?=D0=B7=D0=B0=D0=BF=D0=B8=D1=81=D1=8C=20=D1=84=D0=B0=D0=B9=D0=BB?= =?UTF-8?q?=D0=BE=D0=B2=20=D0=BF=D1=80=D0=B8=20=D1=80=D0=B0=D1=81=D0=BF?= =?UTF-8?q?=D0=B0=D0=BA=D0=BE=D0=B2=D0=BA=D0=B5=20EFD=20(#64)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: vkislitsin --- ...320\276\320\262\321\211\320\270\320\272.os" | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\240\320\260\321\201\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\240\320\260\321\201\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272.os" index 5662cf2..f104f56 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\240\320\260\321\201\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\240\320\260\321\201\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272.os" @@ -526,17 +526,23 @@ // Процедура ЗаписатьФайл(Поток, Знач ОписаниеФайла, Знач КаталогРаспаковки) + ПутьКФайлу = ОбъединитьПути(КаталогРаспаковки, ОписаниеФайла.Имя); + ОбеспечитьКаталог(ПутьКФайлу, Истина); + Чтение = Новый ЧтениеДанных(Поток); Чтение.Пропустить(ОписаниеФайла.Смещение); - БуферДанные = Чтение.ПрочитатьВБуферДвоичныхДанных(ОписаниеФайла.Размер); - Чтение.Закрыть(); + ЗаписьДанных = Новый ЗаписьДанных(ПутьКФайлу); - ПутьКФайлу = ОбъединитьПути(КаталогРаспаковки, ОписаниеФайла.Имя); + ПорцияДанных = 10 * 1024 * 1024; // 10 Мб + Остаток = ОписаниеФайла.Размер; - ОбеспечитьКаталог(ПутьКФайлу, Истина); + Пока Остаток > 0 Цикл + БуферДанные = Чтение.ПрочитатьВБуферДвоичныхДанных(Мин(Остаток, ПорцияДанных)); + ЗаписьДанных.ЗаписатьБуферДвоичныхДанных(БуферДанные); + Остаток = Остаток - ПорцияДанных; + КонецЦикла; - ЗаписьДанных = Новый ЗаписьДанных(ПутьКФайлу); - ЗаписьДанных.ЗаписатьБуферДвоичныхДанных(БуферДанные); + Чтение.Закрыть(); ЗаписьДанных.Закрыть(); Лог.Информация(СтрШаблон("Записан файл %1", ПутьКФайлу));