Форум: "Потрепаться";
Текущий архив: 2003.01.16;
Скачать: [xml.tar.bz2];
Внизrar Найти похожие ветки
← →
race1 (2002-12-22 17:17) [0]я хочу НОРМАЛЬНУЮ компоненту, которая умеет НОРМАЛЬНО работать с архивами (в частности - сжимать и разжимать)
← →
drpass (2002-12-22 17:26) [1]Хотеть не вредно. Думаю, глупо в сотый раз объяснять про закрытый алгоритм, авторские права и все такое...
← →
Сатир (2002-12-22 17:30) [2]а ты НОРМАЛЬНЫЙ?
← →
Хмырь (2002-12-22 17:40) [3]2Сатир
> а ты НОРМАЛЬНЫЙ?
Да нормальный он...
2race1
> я хочу НОРМАЛЬНУЮ компоненту, которая умеет НОРМАЛЬНО работать
> с архивами (в частности - сжимать и разжимать)
Сжимать - наврядли (см. пост drpass"a). А для разжимания rar и zip на этом сайте в разделе "кладовка" есть замечательный компонент.
← →
Marser (2002-12-22 17:51) [4]Не понял, а ZipTV чем не устраивает?
← →
Ketmar (2002-12-22 18:06) [5]http://www.sqx-archiver.org/
Satanas Nobiscum! 22-Dec-XXXVII A.S.
← →
Programist21 (2002-12-22 18:57) [6]Народ, ну, а как насчёт других алгоритмов для сжатия!? Или хотя бы как собрать несколько файлов в один? (Конкретные компоненты?)
← →
Ketmar (2002-12-22 19:23) [7]>Programist21 (22.12.02 18:57)
что, кликать по ссылочкам не умеем? это клиника, компоненты не помогут.
Satanas Nobiscum! 22-Dec-XXXVII A.S.
← →
Сатир (2002-12-22 20:16) [8]могу выложить исходники работы тар-архива, если надо
← →
Programist21 (2002-12-23 10:18) [9]to Ketmar ИМХО за меня бот кликает ;)
to Сатир Конечно выкладывай! А он может сжимать и расжимать?
← →
Ketmar (2002-12-23 11:00) [10]>Programist21 (23.12.02 10:18)
имхо за вас никто не кликает. инче вы бы скачали SQX, почитали документацию и перестали бы "доставать" людей.
для информации: тарболы МОГУТ быть сжатыми по алгоритму LZW (кажется), но никто этого уже очень давно не делает.
Satanas Nobiscum! 23-Dec-XXXVII A.S.
← →
xGrey (2002-12-23 11:53) [11]А что мешает запустить архиватор с ключами из своей программы?
← →
Сатир (2002-12-23 13:31) [12]2Programist21 (23.12.02 10:18)
вообщем, это файловая система TFS(Tar File System), которая построена на принципе работы тар-архиватора.
Примечание. Тар-архивация используется в ленточных стримерах.
unit TarFS;
interface
uses Classes, SysUtils, dcsystem, LibTar;
type
TIdentMapEntry2= record
Filename:String;
FilePos:int64;
end;
TTarFilesMap = array of TIdentMapEntry2;
TTarFileSystem = class (TFileSystem)
private
FTarFilesMap:TTarFilesMap;
FTarArchive: TTarArchive;
FFilesCount:integer;
protected
function GetFileNames:TTarFilesMap;
function IsExist(FileName:string):int64;
public
constructor Create(AOwner: TComponent; FileName:String); overload;
constructor Create(AOwner: TComponent; Stream:TStream); overload;
destructor Destroy;override;
function GetFileStream(const FileName: TFileName; Mode: Integer): TStream;override;
end;
implementation
{TTarFileSystem}
constructor TTarFileSystem.Create(AOwner:TComponent; Stream:TStream);
begin
inherited Create(AOwner);
FTarArchive:=TTarArchive.Create(Stream);
FTarFilesMap:=GetFileNames;
end;
constructor TTarFileSystem.Create(AOwner: TComponent; FileName:String);
begin
inherited Create(AOwner);
FTarArchive:=TTarArchive.Create(FileName);
FTarFilesMap:=GetFileNames;
end;
destructor TTarFileSystem.Destroy;
begin
FTarArchive.Free;
inherited Destroy;
end;
function TTarFileSystem.GetFileNames:TTarFilesMap;
var DirRec : TTarDirRec;
begin
FFilesCount:=0;
while FTarArchive.FindNext (DirRec) do begin
inc(FFilesCount);
SetLength(Result, FFilesCount);
Result[FFilesCount-1].Filename:= DirRec.Name;
Result[FFilesCount-1].FilePos:= DirRec.FilePos;
end;
end;
function TTarFileSystem.IsExist(FileName:string):int64;
var i:integer;
begin
Result:=-1;
if FFilesCount=0 then Exit;
for i:=0 to FFilesCount-1 do
if FileName=FTarFilesMap[i].fileName then begin
Result:=FTarFilesMap[i].FilePos;
Exit;
end;
end;
function TTarFileSystem.GetFileStream(const FileName: TFileName; Mode: Integer): TStream;
var DirRec : TTarDirRec;
begin
if IsExist(Filename)=-1 then Exit;
Result:=TFileStream.Create(FileName,Mode);
with FTarArchive do begin
SetFilePos(IsExist(Filename));
FindNext(DirRec);
ReadFile(Result);
end;
end;
end.
← →
Сатир (2002-12-23 13:37) [13]а теперь реализация самого тар-архива
**
===============================================================================================
Name : LibTar
===============================================================================================
Subject : Handling of "tar" files
===============================================================================================
Author : Stefan Heymann
Eschenweg 3
72076 T
← →
Programist21 (2002-12-23 14:22) [14]to Сатир Нехило...
Слушайте, а может есть более простой метод объединения файлов в один? Или уже готовые компоненты для этого?
← →
Ketmar (2002-12-23 14:44) [15]пишется да пол-часа (учитывая время, потраченное на покупку пива). смысл?
Satanas Nobiscum! 23-Dec-XXXVII A.S.
← →
Programist21 (2002-12-23 14:48) [16]to Ketmar Не было бы смысла - не спрашивал! :|
← →
Ketmar (2002-12-23 15:00) [17]за то время, пока вы, сударь, спрашиваете, можно было вариантов 20 этой фигни накидать...
Satanas Nobiscum! 23-Dec-XXXVII A.S.
← →
Programist21 (2002-12-24 11:14) [18]to Ketmar Ты бы не разводился на ничём, а помог! Или хотя бы устно объяснил как это осуществить!
← →
Anatoly Podgoretsky (2002-12-24 11:20) [19]Смешно даже советовать насчет объединения, операция равносильна операции "+" и компоненты готовые есть TFileStream
← →
Ketmar (2002-12-24 11:34) [20]>Programist21 (24.12.02 11:14)
тебе в сортир ходить тоже помогают? или сам знаешь, где нужный орган? это я к тому, что мозги - они не только для того, чтобы заполнять пустое место в черепе. ими еще и думать можно...
Satanas Nobiscum! 24-Dec-XXXVII A.S.
← →
ION T (2002-12-24 12:01) [21]> для информации: тарболы МОГУТ быть сжатыми по алгоритму
> LZW (кажется), но никто этого уже очень давно не делает.
ты только линуксоидам такого не говори....тарболы служат только архивами (в изначальном понятии этого слова), а потом сжимаются чем угодно (в основном гзипом и получаются *.tar.gz)...
← →
Ketmar (2002-12-24 12:09) [22]>ION T © (24.12.02 12:01)
а я тоже линуксоид. потому утверждаю, что сам TAR умеет сжимать .tar-чики с помощью LZW. получается тот же .tar, только пожатый. а не делают этого именно потому, что тарбол сверху зажимают обычно другим архиватором.
Satanas Nobiscum! 24-Dec-XXXVII A.S.
← →
Programist21 (2002-12-24 17:00) [23]to Anatoly Podgoretsky Ок, а как узнавать при разделении файлов где какой кончается, а где какой начинается?
to Ketmar Сидишь тут крутой - понтуешься что знаешь больше. А взял бы и помог, ведь этот сайт изначально, я думаю, был сделан для этого, а не для пустых перепираний.
Нашёлся линуксоид ;) Скажи, как в Линуксе примонтить логический диск винды, но чтобы отражались имена русских файлов и директорий? ;)
← →
Ketmar (2002-12-24 17:37) [24]>Programist21 (24.12.02 17:00)
>Сидишь тут крутой - понтуешься что знаешь больше. А взял бы и помог
именно этим я и занимался на протяжении всей ветки. однако существам, чей IQ ~ комнатной температуре помощь ни к чему.
>Скажи, как в Линуксе примонтить логический диск винды, но чтобы отражались имена русских файлов и директорий?
вынуть из зада руки и настроить codepage в самбе. удовлетворен, тестер?
Satanas Nobiscum! 24-Dec-XXXVII A.S.
← →
Ketmar (2002-12-24 17:38) [25]ах, да. в догонку: это я про сетевые диски. с локальными чуть проще. man поможет.
Satanas Nobiscum! 24-Dec-XXXVII A.S.
← →
Mirovodin (2002-12-24 17:38) [26]2 Programist21
В результирующий файл записываешь маленький заголовок вида:
Count - кол-во файлов в большом файле.
F1Offset - смещение 1-го файла от начал(конца) файла
F1Size - размер 1-го файла
...
FNOffset
FNSize
F1Data - Данные 1-го файла
...
FNData
← →
Programist21 (2002-12-25 13:28) [27]Удалено модератором
Примечание: Не ругаться
← →
Ketmar (2002-12-25 14:09) [28]>Programist21 (25.12.02 13:28)
чем хочу, тем и занимаюсь. comprenez vous?
>Нет, не удовлетворён. Меня интересует конкретная команда?
консультации платные.
Satanas Nobiscum! 25-Dec-XXXVII A.S.
← →
Anatoly Podgoretsky (2002-12-25 14:15) [29]Programist21 (24.12.02 17:00)
Так ты же программись, не уже ли длину (имя файла, другие зарактеристики) перед куском записать не в состоянии?
← →
esu (2002-12-25 18:13) [30]В командной строке:
copy first second + result
если есть файлы first и second в текущей папке то появится result в котором будут эти 2 файла вместе.
Только как потом из этиго файла получить 2 файла не спрашиваю - я не знаю :)
← →
esu (2002-12-25 18:17) [31]Опс. Я что-то пропустил :)
← →
Programist21 (2002-12-26 08:41) [32]to Модератор Как это "не ругаться"??? Меня опускает какой-то малолетка, а вы ему слова сказать не можете, а меня в даун опускаете!!!???
to Anatoly Podgoretsky В состоянии :))) Но ещё ни разу не пробовал :)
to esu Ты точно что-то пропустил :)))
← →
Ketmar (2002-12-26 12:22) [33]>Programist21 (26.12.02 08:41)
малолетка? а длины пенисов мерять будем? или, все же, будем оценивать ОБЪЕМ ЗНАНИЙ? кстати, не вредно и зарегистрироваться, old man... чтобы я знал, что вы старичок, и не пугал ваш маразм...
Satanas Nobiscum! 26-Dec-XXXVII A.S.
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.01.16;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.009 c