Форум: "Основная";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];
ВнизКопирование n-ое кол-во файлов в один Найти похожие ветки
← →
CoolMan © (2004-10-24 23:25) [0]Уважаемые Мастера!
Читал много статей по сабжу на форуме, но то что нужно не нашел.
Помогите пожалуйста:
Проблема следующего плана: как можно скопировать неизвестное количество файлов с разными разрешениями в один. Пути к копируемым файлам находится в ListView / Columns / 0 - Name. Путь файла, в который копируется, находится в Edit.
Всем примного благодарен!
← →
Digitman © (2004-10-25 09:58) [1]
> с разными разрешениями
может быть таки "расширениями", а не "разрешениями" ?
> неизвестное количество
т.е. Listview содержит лишь список каталогов, откуда должны быть взяты файлы ?
← →
CoolMan © (2004-10-25 10:11) [2]
> т.е. Listview содержит лишь список каталогов, откуда должны
> быть взяты файлы ?
В Listview содержится список каталогов и название файла.
Наример:
C:\xxx\yyy.html
D:\111\222\333.txt
и т.д.
← →
Ozone © (2004-10-25 10:22) [3]BlockRead, BlockWrite
← →
Digitman © (2004-10-25 10:23) [4]тогда что понимать под "неизвестное количество файлов", если количество файлов есть кол-во элементов списка ListView, т.е. значение св-ва ListView.Items.Count ?
← →
TUser © (2004-10-25 10:47) [5]
> как можно скопировать неизвестное количество файлов с разными
> разрешениями в один.
http://www.aidaim.com/products/sfs/sfs_spec.php - оно?
← →
Digitman © (2004-10-25 11:11) [6]
> CoolMan
var
Source, Target: TStream;
..
Target := TFileStream.Create(Edit.Text, fmcreate);
try
with ListView do
for i := 0 to Items.Count - 1 do
begin
Source := TFileStream.Create(Items[i].Caption, fmRead);
try
Target.CopyFrom(Source, Source.Size);
finally
Source.Free;
end;
end;
finally
Target.Free;
end;
← →
Amoeba © (2004-10-25 11:24) [7]
> TUser © (25.10.04 10:47) [5]
>
> > как можно скопировать неизвестное количество файлов с
> разными
> > разрешениями в один.
>
> http://www.aidaim.com/products/sfs/sfs_spec.php - оно?
Я лично использую это решение.
Судя по вопросу (раз расширения разные, то и форматы - должны быть разными, и как-то станно было бы использовать простое их "сшивание", как в ответе [6]), задача решается с помощью SFS (библиотека Single File System).
← →
Плохиш © (2004-10-25 11:32) [8]А чем команда DOS copy не угодила?
← →
TUser © (2004-10-25 11:37) [9]
> А чем команда DOS copy не угодила?
А надо в один файл
← →
Amoeba © (2004-10-25 11:40) [10]
> Плохиш © (25.10.04 11:32) [8]
> А чем команда DOS copy не угодила?
Наверное автору надо потом иметь легкий доступ к этим файлам, объединенным в один.
← →
Anatoly Podgoretsky © (2004-10-25 12:13) [11]TUser © (25.10.04 11:37) [9]
Ну и копируй в один файл, предварительно проведи ликбез по этой команде
← →
TUser © (2004-10-25 12:16) [12]
> Ну и копируй в один файл, предварительно проведи ликбез
> по этой команде
Предполагается, что еще и разделять надо уметь
← →
ЮрийК © (2004-10-25 16:37) [13]Первые четыре байта - количество файлов (К)
Последние (К * 4) байтов - позиции начала каждого файла в едином файле
Ну и используй CreateMappedFile/FileMappedView и т.д. (Читай Рихтера в общем).
← →
Amoeba © (2004-10-25 18:14) [14]
> ЮрийК © (25.10.04 16:37) [13]
> Первые четыре байта - количество файлов (К)
> Последние (К * 4) байтов - позиции начала каждого файла
> в едином файле
> Ну и используй CreateMappedFile/FileMappedView и т.д. (Читай
> Рихтера в общем).
А с SFS ни о чем таком думать не надо (ссылку хоть смотрел?). Просто открываешь SFSStream с указанием пути как к обычному файлу. Легко добавлять, удалять, перемещать, изменять.
← →
ЮрийК © (2004-10-25 19:57) [15]"А с SFS ни о чем таком думать не надо (ссылку хоть смотрел?). Просто открываешь SFSStream с указанием пути как к обычному файлу. Легко добавлять, удалять, перемещать, изменять."
А SFS вроде как платный? Есть о чём подумать значит. А что сложного в том, что я привёл? Единственное, что ещё и имена добавить нужно наверное.
← →
Amoeba © (2004-10-25 20:00) [16]
> А SFS вроде как платный?
Бесплатный без исходников и для некоммерческого использования (только NagScreen при запуске программы). Сам успешно использую. Если надо, могу дать ссылку (хотя они уже были раннее в форуме) где можно скачать исходники.
← →
Amoeba © (2004-10-25 20:01) [17]И еще. По поводу удобства. Это как конторские счеты и калькулятор.
← →
CollMan (2004-10-27 16:22) [18]Огромное всем спасибо!!! Особая благодарность 2 Digitman!!! То что надо.
Не могли бы Вы помочь вот с чем: используя ответ [6] от Digitman
получается файл со следующей картиной:
xxxxxxxx
xxxxxxxx
xxyyyyyy
yyyyyyyy
где запись с "х" - 1 файл, а "у" - второй.
Как сделать так чтобы конечный файл имел вид:
C:\xxx\xxx.html
--------------
xxxxxxxxxxx
xxxxxxxxxxx
xxx
------END-----
Size: 183827
==============
D:\yyy\yyy.txt
--------------
yyyyyyyyyyy
yyyyy
------END-----
Size: 84775
==============
Заранее Всем огромная благодарность!!!
← →
begin...end © (2004-10-27 16:30) [19]
> [18] CollMan (27.10.04 16:22)
А зачем нужны эти красивости в виде "------END-----" и т. д.? Это текстовый файл будет, что ли? Если нет, то достаточно просто записывать, например, сначала путь к очередному присоединённому файлу, потом размер, потом само содержимое. Никаких проблем с последующей расшифровкой вроде не должно возникнуть.
← →
Алхимик © (2004-10-27 17:08) [20]А архиватором воспользоваться?
Вызывать через ShellExecute.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.051 c