Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.16;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.03 c
14-49253
jee
2002-12-26 15:35
2003.01.16
А кто выдает медали


14-49243
alvin
2002-12-24 07:26
2003.01.16
Файлы ресурсов


7-49330
IronWit
2002-11-01 10:26
2003.01.16
работа с trayicon


14-49274
asafr
2002-12-27 13:05
2003.01.16
Сказка стала былью! Брехня, конечно, но приятно..


1-49137
A_ILYA
2002-12-31 14:45
2003.01.16
заставка перед запуском