Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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
1-49085
John
2003-01-05 01:31
2003.01.16
возв.в степень числа


1-49024
boby_g
2003-01-07 17:37
2003.01.16
Вопрос о компонентом TEdit


4-49370
linker
2002-11-29 04:18
2003.01.16
Помогите с разрывом Connecta


1-49162
Fider
2003-01-05 08:36
2003.01.16
Помогите с RunTime!!!!!


1-49027
KPV-10k
2003-01-07 21:21
2003.01.16
Вывод текста в приложении ($APPTYPE CONSOLE) русскими буквами...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский