home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 2002 November / VPR0211A.ISO / OLS / LHA213 / LHA.DOC < prev    next >
Text File  |  1991-07-19  |  27KB  |  772 lines

  1. ------------------------------------------------------------------------
  2.           LHA取り扱い説明書
  3.                                                 Ver.2.13    1991/07/20
  4. ------------------------------------------------------------------------
  5.                                    NIFTY-Serve  SDI00506    吉崎 栄泰
  6.                                    ASCII-pcs    pcs02846    Yoshi
  7.                                    PC-VAN       FEM12376
  8. ------------------------------------------------------------------------
  9.  
  10. 0. はじめに
  11.  
  12.  高圧縮書庫管理プログラム LHarc は、そのスピードの遅さにもかかわらず、
  13. ネットワーカーの皆さんの多大なるご支援を受け、日本国内においては事実上標
  14. 準的なアーカイバの一つとして使われるに到りました。また、海外でも多くの方
  15. 々が使用して下さっているようで、たいへん嬉しく思っています。
  16.  
  17.  LHarc 公開直後から新しいアルゴリズムの検討を続けてきたのですが、じつに
  18. 2年近い時間が過ぎ去ってしまいました。ここに新しいアーカイバ LHA がようや
  19. く実用段階となりましたので、公開致します。
  20.  
  21.  
  22.  LHA を LHarc と比較すると次のような違いがあります。
  23.  
  24.  良くなった点
  25.   ・圧縮率の向上
  26.     とくに大きなファイルでは圧縮率が良くなっています。数百バイト以下
  27.     の小さなファイルでは逆に圧縮率が悪化することもありますが、やむを
  28.     得ないところでしょう。
  29.   ・解凍速度の改善
  30.     アルゴリズムを動的ハフマン法から静的ハフマン法に変更したので、か
  31.     なり速くなりました。今までのようにいらいらしながら待つことはあま
  32.     りなくなるでしょう。ただ、圧縮速度は期待したほど速くはなりません
  33.     でした。残念。
  34.  
  35.  悪くなった点
  36.   ・メモリ必要量が増加
  37.     かなり大きな空きメモリを必要とします。エディタやメニュープログラ
  38.     ムの子プロセスとして実行するときには注意が必要です。空きメモリが
  39.     不足しているときには、圧縮率を犠牲にして、極力実行を続けるように
  40.     しています。
  41.   ・LHarc で解凍できない
  42.     互換モードを用意してはいますが、LHA で作成した書庫は LHarc では解
  43.     凍できません。逆はもちろん可能です。
  44.  
  45.  
  46.  本プログラムは LHarc と同様にフリーソフトウェアとして公開致しますので、
  47. コピー・使用は自由にしていただいてかまいません。もちろん企業内での使用や
  48. 政府機関での使用も全く制限致しません。ただし、本プログラムの使用にあたっ
  49. ては、使用者自身の責任の下に行ってください。作者は何の保証もしませんし、
  50. 本プログラムを使用したことによって生じた損害を補償する義務も負いません。
  51.  
  52.  営利的な再配布に関しては若干の制限がありますので、最後の項をご覧下さい。
  53.  
  54.  
  55.  それでは実際の使い方を説明することにします。
  56.  
  57.  
  58. 1. 使用法
  59.  
  60.   A. 一般的な書式
  61.  
  62.    LHA <command> [-<option>[-+012|WDIR]...] LZH [[DIR\] [FILE]...]...
  63.  
  64.     <command>: 命令
  65.     <option>: オプション
  66.     LZH  : 書庫(archive)名
  67.     DIR  : 基準ディレクトリ名
  68.     FILE : ファイルのパス名
  69.     WDIR : 作業ディレクトリ名
  70.  
  71.  
  72.   B. 命令 <command>
  73.  
  74.     a (Add) 凍結(書き換え・追加)
  75.  
  76.        ファイルを凍結(圧縮)して書庫(archive)に書き換え・追加します。書
  77.       庫が存在しなければ、新しく作成します。書庫の中に同じ名前のファイル
  78.       があるときには強制的に書き換えます。
  79.  
  80.       〈例 1〉LHA a ex *.exe
  81.  
  82.             拡張子に EXE の付いたファイルを全て EX.LZH というファイルに格
  83.             納します。
  84.  
  85.     u (Update) 凍結(更新・追加)
  86.  
  87.        a コマンドと同様に書庫にファイルを更新・追加しますが、書庫の中に
  88.       同じ名前のファイルがあるときには更新日時の照合を行い、新しい方を書
  89.       庫に残します。-c オプションを設定すると a コマンドと同じ動作をしま
  90.       す。
  91.  
  92.       〈例 2〉LHA u ex *.c
  93.  
  94.             拡張子に C の付いたファイルを全て EX.LZH というファイルに格
  95.             納します。すでに同じ名前のファイルが EX.LZH の中にあって、こ
  96.             ちらの方が新しいときには何もしません。
  97.  
  98.     m (Move) 移動
  99.  
  100.        u コマンドと同様にファイルを更新日時の照合を行いながら書庫に追加
  101.       ・更新しますが、凍結元のファイルを削除します。-c オプションが設定さ
  102.       れていると日時照合をしません。なお、名前が合致すると実際には凍結さ
  103.       れなかった古いファイルも削除しますので、注意して使ってください。
  104.  
  105.       〈例 3〉LHA m ex *.c
  106.  
  107.             例 2 と同じ動作をしたあと、*.c に一致するファイルを全て削除
  108.             します。
  109.  
  110.     f (Freshen) 凍結(更新)
  111.  
  112.         書庫の中のファイルと同名のファイルを探し、更新日時の新しいものが
  113.       あれば書き換えます。-c オプションが設定されていると日時照合をしませ
  114.       ん。
  115.  
  116.       〈例 4〉LHA f ex lha.doc
  117.  
  118.             EX.LZH の中に LHA.DOC というファイルが格納されていて、それが
  119.             古いものであれば新しいものに入れ換えます。
  120.  
  121.     d (Delete) 削除
  122.  
  123.         書庫の中のファイルを削除します。
  124.  
  125.       〈例 5〉LHA d ex lha.doc
  126.  
  127.             EX.LZH の中の LHA.DOC というファイルを削除します。
  128.  
  129.     e (Extract) 解凍
  130.  
  131.        書庫からファイルを解凍(復元して取り出)します。更新日時の新しい
  132.       ファイルがあると通常はスキップしますが、-c オプションを設定すると解
  133.       凍可能です。LArc で作成された標準的な書庫の解凍も可能です。(-lzs-, 
  134.       -lz4-, -lz5- の圧縮ファイル)
  135.  
  136.       〈例 6〉LHA e ex
  137.  
  138.             EX.LZH の中のファイルを全て復元します。
  139.  
  140.       〈例 7〉LHA e ex *.com
  141.  
  142.             EX.LZH の中の拡張子が COM のファイルだけを復元します。
  143.  
  144.     x (eXtract) ディレクトリ展開つき解凍
  145.  
  146.        書庫内のファイルがディレクトリ名付きで格納されているときには、デ
  147.       ィレクトリ構造も再現しながら解凍します。「LHA E -x1m1」と等価です。
  148.  
  149.       〈例 8〉LHA x ex
  150.  
  151.             EX.LZH の中のファイルを全て、ディレクトリ付きで復元します。
  152.             たとえば、BIN\CG86.EXE というファイルのときは、BIN というデ
  153.             ィレクトリを作成し、ここに CG86.EXE を復元します。
  154.  
  155.     p (Print) 閲覧
  156.  
  157.        書庫内のファイルを解凍して標準出力に表示します。
  158.  
  159.       〈例 9〉LHA p ex lha.doc
  160.  
  161.             EX.LZH の中の LHA.DOC を展開しながら画面に表示します。
  162.  
  163.       〈例 10〉LHA p ex lha.doc > prn
  164.  
  165.             EX.LZH の中の LHA.DOC を展開し、プリンタに出力します。
  166.  
  167.     l (List) 一覧
  168.  
  169.         書庫内のファイルの一覧表を表示します。
  170.  
  171.         -x オプションを設定していないときは1ファイル1行表示となり、ファ
  172.       イル名のみが表示されます。書庫にパス名も記録されているときには、フ
  173.       ァイル名の前に「+」が表示されます。
  174.  
  175.         -x オプションを設定したときには1ファイル2行表示となり、記録され
  176.       ているパス名をそのまま全て表示します。
  177.  
  178.       〈例 11〉LHA l ex
  179.  
  180.             EX.LZH の中に格納されているファイルの一覧表を画面に表示しま
  181.             す。
  182.  
  183.     v (View) 一覧
  184.  
  185.         l -x1 と同じです。
  186.  
  187.     t (Test) 検査
  188.  
  189.         書庫内のファイルの CRC コードをテストします。
  190.  
  191.         もう一つの機能として、配布された LHA.EXE や LHA????.EXE が改竄さ
  192.       れていないかどうかをチェックすることができます。
  193.  
  194.         LHA t LHA.EXE とすると、「This file seems to be ORIGINAL distri-
  195.       buted from H.Yoshi.」という表示が出ます。LHA????.EXE をテストしたと
  196.       きには個々のファイルの CRC をチェックした後、同様の表示が出ます。
  197.  
  198.         自分自身をチェックする意味はほとんどありませんが、今後公開される
  199.       新バージョンがオリジナルのものかをチェックする意味はあるでしょう。
  200.  
  201.         LEXEM, DIET, PKLITE や LZEXE をかけたものに対してはチェックできま
  202.       せん。
  203.  
  204.       〈例 12〉LHA t ex
  205.  
  206.             EX.LZH の中に格納されているファイルが壊れていないかテストし
  207.             ます。
  208.  
  209.       〈例 13〉LHA t LHA.EXE
  210.  
  211.             LHA.EXE が変更(改竄)されていないかテストします。
  212.  
  213.     s (Self-extract)
  214.  
  215.        通常の書庫から自己解凍書庫(SFX : self-extracting archive)を作成し
  216.       ます。用途により2種類の書庫が作成可能で、-x0 (既定値)で作成した 
  217.       SFX(SMALL 版)は、ファイルをカレントディレクトリ以外には展開できま
  218.       せん。また、自動実行機能もありませんが、サイズは少し小さくなってい
  219.       ます。-x1 で作成した SFX(LARGE 版)は、ディレクトリ構造を再現した
  220.       り、自動実行を行うことも可能です。
  221.  
  222.       〈例 14〉LHA s ex
  223.  
  224.             EX.LZH という書庫から EX.EXE という自己解凍書庫(SMALL 版)を
  225.             作成します。
  226.  
  227.  
  228.   C. オプション -<option>
  229.  
  230.     細かい動作を変更するオプションです。オプションは一般的に、0, 1, 2 の
  231.     3つの値を指定できますが、1 と 2 が同じ動作をするものもあります。従来
  232.     どおり、-, + での設定や無指定による反転機能(0 なら 1 になり、1 か 0 
  233.     なら 1 に変わる)も使えます。また、MS-DOS の設定により /<option> 形式
  234.     でオプションを指定することもできます。
  235.  
  236.  
  237.     -x[0|1] (eXtend)
  238.  
  239.       ファイルの出し入れの時にディレクトリ名を追加します。
  240.  
  241.         たとえば、\tc\include\sys\stat.h というファイルをルートディレクト
  242.       リを基準に凍結するとき、-x0 のときは STAT.H というファイル名のみを
  243.       書庫内に記録しますが、このスイッチを設定すると TC\INCLUDE\SYS\STAT
  244.       .H とディレクトリ名付きで格納します。解凍のときも、このスイッチが設
  245.       定されていると、ディレクトリ名が記録されていれば、そのディレクトリ
  246.       上に解凍します。また、l コマンドにおいても記録されているパス名をそ
  247.       のまま出力する2行表示モードとなります。
  248.  
  249.  
  250.     -p[0|1] (Precise)
  251.  
  252.       ファイル名の検索を厳密に行います。
  253.  
  254.        たとえば、書庫 TC に STAT.H と SYS\STAT.H というファイル名の同じ
  255.       2つのファイルがあるとき、
  256.  
  257.         LHA e TC stat.h
  258.  
  259.       とすると、両方のファイルが解凍されてしまいます。そこで、
  260.  
  261.         LHA e -p TC stat.h
  262.  
  263.       とすることによって STAT.H のみが解凍できます。逆に、
  264.  
  265.         LHA e TC sys\stat.h
  266.  
  267.       とすることで、SYS\STAT.H だけが解凍されます。
  268.  
  269.  
  270.     -c[0|1] (ignore Comparison of time)
  271.  
  272.       凍結・解凍のときに日時照合を行わない
  273.  
  274.        u, f, e, x コマンドにおいて、転送先にパス名が同じで更新日時の新し
  275.       いファイルがすでに存在していると、通常は凍結・解凍しません。このス
  276.       イッチを設定すると、日時照合を無視します。
  277.  
  278.  
  279.     -m[0|1|2] (no Message)
  280.  
  281.         問い合わせを行わず、問い合わせにたいして、すべて「Y」が入力された
  282.       ものとして処理を続けます。
  283.  
  284.        解凍時、同名のファイルが既に存在している時には -m1 と -m2 は異な
  285.       る意味を持っています。
  286.       
  287.       -m1: 更新日時の照合を行い、書庫内のファイルの方が新しければファイル
  288.            を更新します。
  289.  
  290.       -m2: 更新日時の照合を行わず、000 から 999 までの使用されていない拡
  291.            張子に変更して解凍します。ただし、ish のような同一性のチェック
  292.            は行っていません。
  293.  
  294.  
  295.     -a[0|1] (any Attribute)
  296.  
  297.       すべての属性のファイルを凍結の対象とします。また解凍時には、元の属
  298.       性を再現します。
  299.  
  300.        凍結時 -a0 では、隠し属性・システム属性の付いたファイルは格納され
  301.       ません。リードオンリー属性の付いたファイルはそのまま格納します。こ
  302.       のとき、リードオンリー属性も保存されます。
  303.  
  304.        凍結時 -a1 では、全てのファイルがそのままの属性で格納されます。
  305.  
  306.        解凍時 -a0 では、隠し属性・システム属性の付いたファイルは解凍され
  307.       ません。リードオンリー属性の付いたファイルは解凍されますが、リード
  308.       オンリー属性は保存されません。
  309.  
  310.        解凍時 -a1 では、全てのファイルがそのままの属性で解凍されます。
  311.  
  312.     -r[0|1|2] (Recursive)
  313.  
  314.       凍結・解凍時にファイルを再帰的に検索します。
  315.  
  316.        ここで言う「再帰的」とは、下位レベルのディレクトリがあるときには
  317.       それも含めてファイルを検索することを意味しています。
  318.  
  319.  
  320.       ファイルの検索には3つのモードがあります。
  321.  
  322.       -r0: 非再帰モード
  323.  
  324.            パス名で指定されたファイルだけを凍結・解凍します。
  325.  
  326.       -r1: ファイル名指定再帰モード
  327.  
  328.            ディレクトリ名とファイル名を切り離し、指定されたディレクトリ
  329.           以下のファイルを再帰的に検索し、ファイル名と一致するものを凍結
  330.           ・解凍します。共通の名前を持ったファイルをまとめて選択するとき
  331.           に使います。
  332.  
  333.       -r2: ディレクトリ指定再帰モード
  334.  
  335.            パス名で指定されたディレクトリ以下の全てのファイルを凍結・解
  336.           凍します。ディレクトリ構造をまとめて操作するときに使います。
  337.  
  338.    [注意]
  339.  
  340.      従来、解凍時に /x の代わりに /r を使っているバッチファイルを良
  341.     く見かけます。LHarc では解凍時には /r は無効で、連動して設定され
  342.     た /x の機能が働いていたのです。LHA では解凍時にも /r が有効となり、
  343.     /x が自動的に設定されることも無くなりましたので、注意してください。
  344.  
  345.  
  346.     -w[0|1|<作業ディレクトリ名>] (Work directory)
  347.  
  348.       作業ファイルを作成するディレクトリを指定します。
  349.  
  350.        -w に作業ディレクトリ名を続けると、-w+ が指定されたものと見なしま
  351.       す。指定がなければ書庫と同じディレクトリに作業ファイルを作成し、処
  352.       理が終了した時点で作業ファイルの名前を書庫名に変更します。作業ディ
  353.       レクトリ名の指定なしに -w+ のみが指定されたときには、カレント・ドラ
  354.       イブのカレント・ディレクトリに作業ファイルを作成します。
  355.  
  356.        環境変数「TMP」によって作業ディレクトリを設定しているときにも、-w
  357.       スイッチが 1 に設定されます。
  358.  
  359.  
  360.        このスイッチは下記の場合に有効と思われます。
  361.  
  362.       1. 書庫のあるディレクトリ(ドライブ)に作業ファイルを作成する余裕が
  363.          ないとき。
  364.  
  365.       2. RAM disk や HARD disk などの高速デバイスに作業ファイルを作成する
  366.          ことにより、処理を高速化したいとき。
  367.  
  368.  
  369.     -t[0|1] (Time stamp)
  370.  
  371.       書庫の更新日時を、書庫内のファイルの最新の物に合わせます。
  372.  
  373.        書庫を更新するコマンド(a, u, m, f, d)で有効です。このスイッチが
  374.       指定されていないときには、書庫を更新した時刻そのものが書庫の更新日
  375.       時となります。
  376.  
  377.  
  378.     -z[0|1|2] (Zero compression)
  379.  
  380.       ファイルを圧縮せずに書庫に格納します。
  381.  
  382.       -z1 : 凍結する全てのファイルを圧縮しない。
  383.       -z2 : LZH, LZS, ZIP, PAK, ARC, ZOO および次のオプションで登録した拡
  384.             張子を持つファイルだけを圧縮せずに格納します。
  385.       -z<extension> :
  386.             指定した拡張子のファイルを無圧縮として登録します。同時に -z2 
  387.             が指定されたものとみなします。
  388.             拡張子の記述にはワイルドカードも使用できますし、先頭に '.' を
  389.             付けても付けなくてもかまいません。拡張子無しのファイルを指定
  390.             するときには -z. とします。また、-zexe -zcom などと複数の拡張
  391.             子を無圧縮指定することもできます。
  392.  
  393.  
  394.     -o[0|1] (Old compatible compression)
  395.  
  396.      LHarc ver.1.xx で解凍できる書庫を作成します。
  397.  
  398.       アルゴリズムの変更により、LHarc よりも少しコンパクトな書庫が作成
  399.      できます。このときには自動的に -h0 が選択されます。
  400.  
  401.  
  402.     -h[0|1|2] (Header level)
  403.  
  404.      ヘッダの形式を選択します。既定値は -h1 です。
  405.  
  406.  
  407.     -i[0|1|2] (don't Ignore case)
  408.  
  409.      解凍時のファイルの選択において、大文字と小文字を区別します。
  410.  
  411.       他の OS 版の LHA(LHarc) で作成された書庫では、ファイル名に大文字
  412.      と小文字が混在している可能性があります。解凍時に大文字/小文字を区
  413.      別して扱いたいときに本オプションを使います。
  414.  
  415.        凍結時(f コマンドを除く)、-i2 を指定するとパス名を全て小文字に
  416.       変換して格納することができます。小文字のパス名がお好きな方はお使い
  417.       ください。
  418.  
  419.  
  420.     -n[0|1|2] (No indicator)
  421.  
  422.       凍結・解凍時の ooo..... という表示をしません。
  423.  
  424.       -n1 : ooo..... という表示を抑制します。
  425.       -n2 : さらにファイル名の表示も抑制します(非常に寡黙になります)。
  426.  
  427.  
  428.     -l[0|1|2] (Long display)
  429.  
  430.       凍結・解凍時のファイル名の表示法を変更します。
  431.  
  432.       -l0 : ファイル名だけを表示します。
  433.       -l1 : 書庫内に記録する(されている)パス名を表示します。
  434.       -l2 : 実際にアクセスするパス名を表示します。
  435.  
  436.        なお、-l1, -l2 では2行表示となります。
  437.  
  438.  
  439.     --[1|2]
  440.  
  441.       以降のオプション・レスポンスファイルの指定を無効とし、最初の文字が 
  442.       '-', '@' である書庫名やファイル名を正しく認識するようにします。
  443.  
  444.        --1 では '@' のみを、--2 では '@' と '-' の両方を通常の文字として
  445.       認識します。
  446.  
  447.        指定の解除は '/-[0]' で可能です。'--0' ではファイル名と判断してし
  448.       まいます。
  449.  
  450.  
  451.     -s[0|1]
  452.  
  453.       "Skipped  FILENAME.EXT : 最新のファイルが存在" という表示を抑制しま
  454.       す。
  455.  
  456.  
  457.   D. 基準ディレクトリについて
  458.  
  459.      基準ディレクトリをうまく使うことにより、複数のディレクトリに散在す
  460.     るファイルを自由に選択凍結したり、複数のディレクトリに解凍したりする
  461.     ことが可能となります。
  462.  
  463.      基準ディレクトリは、凍結・解凍するファイルのディレクトリの取り扱い
  464.     を、カレントドライブ・ディレクトリをそこに移動してから LHA を実行した
  465.     時と同じにします。複数指定が可能で、次の基準ディレクトリ名が指定され
  466.     るまで有効です。また、a: といったドライブ名の指定も有効で、そのドライ
  467.     ブのカレントディレクトリを指定したことになります。
  468.  
  469.          (例)
  470.              A>lha x lha212 b:\lha\inc\ *.h c: *.c
  471.                             ~~~~~~~~~~~     ~~
  472.                           ∥
  473.              A>b:
  474.              B>cd \lha\inc
  475.              B>a:lha x a:lha212 *.h
  476.              B>c:
  477.              C>a:lha x a:lha212 *.c
  478.  
  479.      ただし、1つのファイルを複数のディレクトリに解凍することはできず、
  480.     先に指定した方が有効となります。
  481.  
  482.          (例)
  483.              A>lha x lha212 b:\lha\inc\ lha.h c: *.h
  484.                             ~~~~~~~~~~~       ~~
  485.              LHA.H は B:\LHA\INC\LHA.H として解凍されます。
  486.  
  487.  
  488.   E. レスポンスファイルと入力のリダイレクト
  489.  
  490.      MS-DOS のコマンドラインは字数制限があり、たくさんのファイルを一度に
  491.     指定することができません。そこで、レスポンスファイル機能と入力のリダ
  492.     イレクト機能を用意しました。
  493.  
  494.     a. レスポンスファイル
  495.  
  496.        レスポンスファイルは MASM や LINK と同様に先頭に @ を付けて区別し
  497.       ます。ファイルの内容はコマンドラインに書く書式と同じです。改行文字
  498.       は空白とみなされますので、複数行に分けて書いてもかまいません。ファ
  499.       イル中に命令やオプションを記述することもできます。
  500.  
  501.        レスポンスファイルの中から他のレスポンスファイルを呼び出す(多重
  502.       ネスト)ことはできません。この場合には @ で始まるファイル名として
  503.       認識されます。
  504.  
  505.     b. 入力のリダイレクト
  506.  
  507.        レスポンスファイルと同様の内容を、リダイレクトやパイプを使って渡
  508.       すことも可能です。リダイレクト中でレスポンスファイルを指定すること
  509.       もできます。
  510.  
  511.     (使用例)
  512.          PARTS.LZH の中のファイル名一覧を FILES に作成し、NEWPARTS.LZH 
  513.         という新しい書庫を作成する。
  514.  
  515.           A>lha l -n1 parts > files
  516.           A>lha a newparts @files
  517.  
  518.          ls でファイル名一覧を作成し、ソートした上で書庫 ALL.LZH を作成
  519.         する。(ls はいろいろなものが出回っていますので、Software-Tools 
  520.         のものを標準としています。出力形式の異なるものに注意)
  521.  
  522.           A>ls | sort | lha a all
  523.  
  524.  
  525.   F. 環境変数
  526.  
  527.     a. LHA と LHARC
  528.  
  529.        オプションの既定値を設定するために使います。LHA があれば LHARC は
  530.       無視されます。
  531.  
  532.     b. TMP
  533.  
  534.        -w オプションと同様に、作業ファイルを作成するディレクトリを設定し
  535.       ます。なお、作業ファイルを作成するディレクトリが存在しないときには
  536.       カレントドライブのカレントディレクトリに作業ファイルを作成します。
  537.  
  538.     c. TZ
  539.  
  540.        -h2 で凍結するとき、-h2 で凍結された書庫を解凍するときに設定しな
  541.       ければいけません。さもなければ、タイムスタンプが狂います。日本国内
  542.       では MS-DOS のコマンドで set TZ=JST-9 と設定します。
  543.  
  544.  
  545.   G. 終了コード
  546.  
  547.       バッチファイルなどに返される終了コードは以下のとおりです。
  548.  
  549.     0   正常終了。
  550.  
  551.     1   解凍のとき、CRCエラーが起きたか、ディスクの容量が足りず解凍で
  552.         きないファイルがあった。または、指定されたファイル名の中に使用さ
  553.         れないものがあった。
  554.  
  555.     2   致命的なエラーなどのため処理を中止した。書庫は更新されていない。
  556.  
  557.     3   作業ファイルを書庫に書き戻せなかった。作業ファイル LHTMP)2(.lzh 
  558.         が残っている。
  559.  
  560.     作業ファイル LHTMP)2(.lzh は書庫の形式を保っていますので、リネームし
  561.     て書庫として使用可能です。
  562.  
  563.  
  564.   H. 作業ファイル名
  565.  
  566.     LHTMP)1(.lzh  旧書庫をリネームしたもの
  567.     LHTMP)2(.lzh  新書庫を作るための作業ファイル
  568.  
  569.  
  570. 2. 自己解凍書庫
  571.  
  572.    自己解凍書庫(SFX)とは、自分自身を実行することによって書庫内のファイル
  573.   を展開・再現する機能を持っています。LHA の配布ファイル自体も SFX となっ
  574.   ています。LHA で作成できる SFX は、LHA で作成された書庫からのみ可能です。
  575.   LHarc で作成された書庫からは作成できませんので、注意してください。LHA で
  576.   は -x オプションの設定により、2種類の SFX を選択することができます。ま
  577.   ずはじめに、以下に LHA の SFX が持っている特別な機能を解説します。
  578.  
  579.     A. テロップ機能
  580.  
  581.        ファイル名が「!」であるファイルを自己解凍書庫内に見つけると、ディ
  582.       スクには解凍せず、展開した内容を画面に表示します。表示終了後、[Y/N] 
  583.       と表示して一旦停止しますので、ここでキーボードから「Y」を入力すると
  584.       以降の動作を継続します。ここで「N」を入力するとそこで処理を中止しま
  585.       す。
  586.  
  587.     B. 解凍先ディレクトリの指定(-x1 で作成した SFX のみ)
  588.  
  589.        SFX 実行時、コマンドラインに解凍したいディレクトリを直接入力する
  590.       ことによって、指定します。たとえば LHA212.EXE というファイルの場合
  591.       には、LHA212 A:\USER とすることにより A:\USER\ というディレクトリ上
  592.       にファイルを解凍します。また、LHarc の SFX との互換性のため、-e オ
  593.       プションでの解凍先ディレクトリの指定も有効です。
  594.  
  595.     C. 自動実行機能(-x1 で作成した SFX のみ)
  596.  
  597.        コマンドラインに -! オプションを指定すると、解凍終了後、書庫から
  598.       解凍した「!.BAT」を実行します。「!.BAT」は解凍先ディレクトリが指定
  599.       されていても、常にカレントディレクトリに解凍されます。また、既にカ
  600.       レントディレクトリに「!.BAT」が存在する場合には上書きされます。また、
  601.       「!.BAT」が書庫内に無いときには、既に「!.BAT」というファイルが既に
  602.       カレントディレクトリに存在していても自動実行機能は働きません。
  603.  
  604.  
  605.    つぎに、2種類の自動解凍書庫の機能について解説します。
  606.  
  607.     A. -x0 で作成した SFX(SMALL 版)
  608.  
  609.        この場合には、元になった書庫がディレクトリ付きであっても、SFX に
  610.       はファイル名だけが記録されています。解凍先ディレクトリ指定もできま
  611.       せんので、常にカレントディレクトリに解凍されます。自動実行機能もあ
  612.       りませんが、テロップ 機能は使えます。LHarc の small 版とは違い、書
  613.       庫サイズの制限はありません。
  614.  
  615.     B. -x1 で作成した SFX(LARGE 版)
  616.  
  617.        テロップ機能・解凍先ディレクトリ指定機能・自動実行機能の全てが使
  618.       えます。また、元になる書庫のファイルがディレクトリ付きで格納されて
  619.       いるときにはそのままの形でパス名を記録しているので、SFX 解凍時にデ
  620.       ィレクトリ構造を再現します。この機能を抑制する時には SFX 実行時に 
  621.       -x オプションを指定します。
  622.  
  623.        コマンドラインオプションをまとめておきます。
  624.  
  625.         SFX.EXE [-x] [-!] [-a] [-eDIR] [DIR]
  626.  
  627.           -x : ディレクトリ展開の抑制
  628.           -! : 自動実行
  629.           -a : 属性の復元
  630.           -eDIR or DIR : 解凍先ディレクトリの指定
  631.  
  632.  
  633. 3. LHarc との操作上の相違点
  634.  
  635.  LHA は LHarc を継承したソフトですが、かなり書き換えてしまったので「似て
  636. 非なる」ソフトとなっています。おもな相違点を以下に示しましたが、もっとた
  637. くさんの変更点がありますので、注意してください。
  638.  
  639.  
  640.  ☆ ファイルがソートされない
  641.  
  642.    従来の LHarc ともっとも異なる点は、書庫内のファイルがソートされて格納
  643.   されないことです。全く新しい書庫を作成するときには、指定した順番に格納
  644.   されていきます。ワイルドカードがあれば、ディレクトリ内の順番に従います。
  645.   古い書庫に追加するときには、書庫内に無いファイルは後に追加していきます。
  646.  
  647.    ソートされた書庫を作りたいときには、dsort, ordir, fd などのユーティリ
  648.   ティで予め順番に配置しておくか、リスポンスファイルにソートしたファイル
  649.   名一覧を作っておくと良いでしょう。
  650.  
  651.     A>ls *.c *.h | sort | lha a LZH
  652.  
  653.    などとすることもできます。
  654.  
  655.  ☆ -r オプションと -x の連動を中止
  656.  
  657.    解凍時にも -r の指定を有効としたため、-x との連動を止めました。
  658.  
  659.  ☆ x コマンド
  660.  
  661.    このバージョンでは、X コマンドを E -x1m1 と等価としてみました。すなわ
  662.   ち、ディレクトリ構造も復元しながら解凍します。
  663.  
  664.  ☆ 自己解凍ファイルの自動実行機能の変更
  665.  
  666.   LHarc では AUTOLARC.BAT を実行していましたが、LHA では !.BAT に変更し
  667.  ました。また、キーワード比較での自動実行は止め、-! オプションによる実行
  668.  許可としました。
  669.  
  670.  ☆ タイムスタンプについて
  671.  
  672.    LHA では内部的にタイムスタンプを 1970-01-01 00:00:00 UTC からの通算秒
  673.   に変換しています。このため、実在しないスタンプ(80-00-00 など)を持った
  674.   ファイルを格納した場合、タイムスタンプは不定となります。
  675.  
  676.  
  677. 4. 使用・再配布・移植・改良について
  678.  
  679.    本プログラムは、著作権を放棄していないいわゆる「フリーソフトウェア」
  680.   です。以下の条件に従って、自由に使用していただいてかまいません。
  681.  
  682.     1.著作権表示を変更しないこと。
  683.     2.この LHA.DOC も同時に配布すること。
  684.     3.改変を加えたとき(移植・改良など)には、改変者の氏名(ペンネーム
  685.         )・連絡先などとともに、変更が加えられていることを明示すること。
  686.     4.このプログラムを使用したことによって生じた損害は、全く保証しない。
  687.     5.作者は、このプログラムに不備があっても、それを訂正する義務を負わ
  688.         ない。
  689.     6.雑誌・商品などに添付して再配布する場合には、少なくとも1か所に著
  690.       作権表示を印刷(タイプ)すること。なお、意図的にバックアップを禁
  691.         止している(コピープロテクトされている)ソフトとの同時配布は原則
  692.         として禁止します。
  693.  
  694.     いずれの場合にも作者への許諾は不用です。ときとして使用許諾のメールの
  695.   嵐にみまわれて閉口することもありましたので、ご報告に留めていただければ
  696.   幸です。
  697.  
  698.  
  699. 5. 連絡先
  700.  
  701.    感想・バグレポートなどはなるべく、NIFTY-Serve ソフトウェア工房(FLABO)
  702.   の会議室までお願い致します。メールでのお問い合わせもお受けしますが、ご
  703.   返事が遅れる、あるいは行かないことも予想されます。また、頂いたメールは 
  704.   FLABO の会議室で公開することもありますので、予めご了承下さい。
  705.  
  706.   [電子メール]
  707.  
  708.           NIFTY-Serve      SDI00506 | PFF00253   吉崎 栄泰
  709.           ASCII-NET pcs    pcs02846              Yoshi
  710.           PC-VAN           FEM12376              吉崎 栄泰
  711.  
  712.   [郵政省メール]
  713.  
  714.          〒080 帯広市東4条南12丁目 帯広協会病院 内科
  715.  
  716.  
  717. 6. 最後に
  718.  
  719.   本プログラムの作成には以下の公開ソフトウェアを使用しました。
  720.  
  721.     1. LSI C-86 Ver 3.20 試食版
  722.        エル・エス・アイ  ジャパン(株)
  723.  
  724.     2. A-MACROS / 構造化アセンブラMACROS
  725.        AMSCLS.INC (c) Hortense S. Endoh 1986, 1987
  726.        Ver.2.10
  727.  
  728.     有用なソフトを公開していただき、ありがとうございました。
  729.  
  730.  
  731.    LHarc の公開によって、PKZIP や PAK などの圧縮アルゴリズム全体が進化し
  732.   たことは事実だと自負しています。私にとってはこれだけで良かったのですが、
  733.   いろいろな方々のご支援や励ましを受けながら、またここまでたどり着きまし
  734.   た。
  735.  
  736.     圧縮アルゴリズムの理論的な指導をしてくださった奥村晴彦さんと PC-VAN 
  737.     SIG サイエンスの皆さん
  738.  
  739.     アーカイバ作成の契機・公開の場所を与えてくださった三木和彦さん
  740.  
  741.     英文マニュアルの作成・海外への窓口となってくださった大久保謙二郎さん
  742.  
  743.     英文マニュアルを英語らしい表現に書き換えてくださった Irv Hoff さん
  744.  
  745.     英文マニュアルの作成に協力して下さった NIFTY-Serve の翻訳フォーラムの
  746.     皆さん
  747.  
  748.     いろいろとテストして下さった NIFTY-Serve のソフトウェア工房の皆さん
  749.  
  750.  
  751.   そしてこれまで LHarc を使って下さった全ての皆さんに深謝致します。
  752.  
  753.  
  754. 8. 参考資料
  755.  
  756.    1) Knuth, D. E., Dynamic Huffman Coding, J. Algorithms, 6:163-180, 
  757.       1985.
  758.  
  759.    2) AP-Labo 編著, ハードディスク・クックブック, 翔泳社(1987).
  760.  
  761.    3) 栗田多喜夫, コンピューティングの玉手箱 43, ハフマン符号化法, 
  762.       bit, 20:7:100-101 (1988).
  763.  
  764.    4) 奥村晴彦, 益山健, 三木和彦, 必読・データ圧縮のアルゴリズムと実践, 
  765.       The BASIC, 70(March):1-65, 1989.
  766.  
  767.    5) Fiala, E. R. and Greene, D. H., Data Compression with Finite 
  768.       Windows, Commun. ACM, 32:490-595, 1989.
  769.  
  770.    6) 奥村晴彦, 吉崎栄泰, 特集・圧縮アルゴリズム入門, Cマガジン, 3:1:44
  771.       -68, 1991.
  772.